首页 > 解决方案 > 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

谢谢。

标签: pythonpandasreplace

解决方案


添加此行,它将正常工作

df3.loc[df3['C'].notna(), 'C'] = 'Y'

推荐阅读