【发布时间】:2018-07-19 14:16:06
【问题描述】:
我有以下数据框:
import pandas as pd
import numpy as np
raw_data = {
'Score1': [42, 52, -999, 24, 73],
'Score2': [-999, -999, -999, 2, 1],
'Score3': [2, 2, -999, 2, -999]}
df = pd.DataFrame(raw_data, columns = ['Score1', 'Score2', 'Score3'])
并且我想仅在 Score2 和 Score3 列中将 -999 替换为 NaN,而使 Score1 列保持不变。我想通过名称引用要修改的列,它们可能不连续。
我尝试过类似的方法:
df.loc[:,('Score2', 'Score3')].replace(-999, np.nan, inplace=True)
df
但这不起作用,我认为是因为它正在对副本进行操作。有没有办法在一个语句中做到这一点?
我查看了Pandas replacing values on specific columns,但发现它很混乱,所以觉得一个更简单的例子会有所帮助。
【问题讨论】: