python - python在原始值未知时替换值
问题描述
我正在寻找替换列中的所有值,当该值不为空/NaN 时。当我不知道要替换的东西的价值时,我似乎无法弄清楚如何进行替换。
我有这个——</p>
df1 = pd.DataFrame({'A': ['1', '2', 'Q', '4'],
'B': ['5', '6', '7', '8']})
df2 = pd.DataFrame({'C': ['1', 'Q']})
df3 = pd.merge(df1, df2,
left_on=["A"],
right_on=["C"],
how='left')
print(df1)
print(df2)
print(df3)
A B
0 1 5
1 2 6
2 Q 7
3 4 8
C
0 1
1 Q
A B C
0 1 5 1
1 2 6 NaN
2 Q 7 Q
3 4 8 NaN
在 df3 的 Col C 列中,我想用“Y”替换所有非空值。
如果我知道值替换有效,但我不会提前知道这些值是什么。
df3['C'] = df3['C'].replace(['1'],'Y')
所需的输出看起来像这样 -
A B C
0 1 5 Y
1 2 6 NaN
2 Q 7 Y
3 4 8 NaN
谢谢。
解决方案
添加此行,它将正常工作
df3.loc[df3['C'].notna(), 'C'] = 'Y'