[英]Replace values in a dataframe column that are below a certain threshold with NaN
假设我有以下示例 dataframe:
df = pd.DataFrame({'A': [4, 0.2, 3, 0.5], 'B': ['red', 'white', 'blue', 'green']})
A B
0 4.0 red
1 0.2 white
2 3.0 blue
3 0.5 green
我正在尝试用 NaN 替换低于某个阈值的列中的条目,如下所示:
A B
0 4.0 red
1 NaN white
2 3.0 blue
3 NaN green
这是我的尝试:
cutoff = 2
df['A'] = df['A'].apply(lambda x: [y if y > cutoff else None for y in x])
我收到的错误是:
TypeError: 'float' object is not iterable
我哪里出错了? 我认为它与None
类型有关
np.where
df['A'] = np.where(df['A']<=cutoff , np.nan, df['A'])
下面的代码对你有用吗? 我使用.loc[row_indexer,col_indexer] = value
来修改 dataframe ( 链接到文档)
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [4, 0.2, 3, 0.5], 'B': ['red', 'white', 'blue', 'green']})
df.loc[df['A'] < 1, 'A'] = np.nan
print(df)
Output:
A B
0 4.0 red
1 NaN white
2 3.0 blue
3 NaN green
请尝试:
df['A'] = df2['A'].apply(lambda x: x if x > cutoff else None)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.