是否可以根据确定某个值是否高于或低于某个阈值且不适用的逻辑来替换 pandas DataFrame
中的值?`
import pandas as pd
df = pd.DataFrame({'date': pd.date_range(start='2015-12-31',
periods=13,
freq='M'),
'val': [1, 10, 25, -1000, 45, 66, 99, 88,128, 256,512,1024, 2048]}).set_index('date')
所以我想用 N/A 替换任何值 > abs 10
最佳答案
您可以创建一个 bool 掩码来仅设置满足 bool 条件的行,此外您还可以使用 abs
测试该值是否为 +/- 10:
In [107]:
df.loc[df['val'].abs() > 10, 'val' ] = np.NaN
df
Out[107]:
val
date
2015-12-31 1.0
2016-01-31 10.0
2016-02-29 NaN
2016-03-31 NaN
2016-04-30 NaN
2016-05-31 NaN
2016-06-30 NaN
2016-07-31 NaN
2016-08-31 NaN
2016-09-30 NaN
2016-10-31 NaN
2016-11-30 NaN
2016-12-31 NaN
关于python - 替换 Pandas 列中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37323548/