gpt4 book ai didi

python - 根据条件用 NaN 替换数据帧值,同时保留 df 的形状

转载 作者:行者123 更新时间:2023-11-28 21:34:56 26 4
gpt4 key购买 nike

这里是 Python 新手。我确定我问的是一个微不足道的问题,但不幸的是,在做了一些 google-foo 之后,我还没有找到解决方案。所以这里是:如果我有这样的数据框:

raw_data = {'first_name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'], 
'last_name': ['Miller', 'Jacobson', 'Ali', 'Milner', 'Cooze'],
'age': [42, 52, 36, 24, 73],
'preTestScore': [-999, -999, -999, 2, 1],
'postTestScore': [2, 2, -999, 2, -999]}
df = pd.DataFrame(raw_data, columns = ['first_name', 'last_name', 'age', 'preTestScore', 'postTestScore'])

如何执行以下操作:如果 preTestScore = -999,则将 preTestScore 和 postTestScore 都替换为 NaN?

我可以使用 df.replace(-999, np.nan) 将单个列值替换为 NaN ,但这需要有条件地删除两列。

谢谢你

最佳答案

使用loc带有 bool 掩码和设置为 NaN 的列列表:

df.loc[df['preTestScore'] == -999, ['preTestScore','postTestScore']] = np.nan
print (df)

first_name last_name age preTestScore postTestScore
0 Jason Miller 42 NaN NaN
1 Molly Jacobson 52 NaN NaN
2 Tina Ali 36 NaN NaN
3 Jake Milner 24 2.0 2.0
4 Amy Cooze 73 1.0 -999.0

详细信息:

print (df['preTestScore'] == -999)
0 True
1 True
2 True
3 False
4 False
Name: preTestScore, dtype: bool

关于python - 根据条件用 NaN 替换数据帧值,同时保留 df 的形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52892517/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com