使用 Pandas 将值从一列复制到另一列

新手上路,请多包涵

我有一个包含两列 X 和 Y 的 DataFrame:

    X      Y
0  0  111.0
1  3    NaN
2  1    NaN
3  1  112.0
4  2  113.0
5  2    NaN
6  3  114.0
7  3  115.0
8  1    NaN
9  2  116.0

我只想在 Y 中复制与 NaN 所在的行相对应的 X 值。预期的结果应该是这样的

   X    Y
0  0  111
1  3    3
2  1    1
3  1  112
4  2  113
5  2    2
6  3  114
7  3  115
8  1    1
9  2  116

有什么办法可以做到这一点?

原文由 Yiyi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

您可以简单地使用 pandas 中可用的 fillna() 函数来非常有效地解决这个问题。

下面的代码解释了如何在 Python 中使用它。

 df = pd.DataFrame()

df['X'] = [0, 3, 1, 1, 2, 2, 3, 3, 1, 2]
df['Y'] = [111.0, np.nan, np.nan, 112, 113, np.nan, 114, 115, np.nan, 116]

df['Y'] = df['Y'].fillna(df['X'])

print(df)

原文由 Sreeram TP 发布,翻译遵循 CC BY-SA 4.0 许可协议

这是一个班轮:

 df.loc[df['Y'].isnull(), 'Y'] = df['X']

原文由 Allan J 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题