我有一个数据框:
import pandas as pd
import numpy as np
x = {'Value': ['Test', 'XXX123', 'XXX456', 'Test']}
df = pd.DataFrame(x)
我想使用 lambda 将以 XXX 开头的值替换为 np.nan。
我已经尝试了很多替换、应用和映射的方法,我能做的最好的就是“假”、“真”、“真”、“假”。
下面的方法有效,但我想知道更好的方法,并且我认为应用、替换和 lambda 可能是更好的方法。
df.Value.loc[df.Value.str.startswith('XXX', na=False)] = np.nan
use the apply https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.apply.html method
In [80]: x = {'Value': ['Test', 'XXX123', 'XXX456', 'Test']}
In [81]: df = pd.DataFrame(x)
In [82]: df.Value.apply(lambda x: np.nan if x.startswith('XXX') else x)
Out[82]:
0 Test
1 NaN
2 NaN
3 Test
Name: Value, dtype: object
Performance Comparision of apply, where, loc
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)