我有一个 pandas df,其中每列都有一些数值,后面跟着一些 NaN。列之间的值和 NaN 数量不同。我想在特定列的“第一个非 NaN 位置”附加一个值。
我的 pandas df 看起来像这样:
A B C D
0 5 7 2 3
1 2 1 NaN 4
2 4 6 NaN 5
3 NaN 4 NaN 6
4 NaN 3 NaN NaN
5 NaN NaN NaN NaN
我想在特定列的底部添加(“追加”)一个值,例如,我想将“A”列中的第一个“NaN”更改为值“3”。期望的结果应该是:
A B C D
0 5 7 2 3
1 2 1 NaN 4
2 4 6 NaN 5
3 3 4 NaN 6
4 NaN 3 NaN NaN
5 NaN NaN NaN NaN
我想使用“append”,但它已被弃用。我尝试过“concat”,但我不想要一个全新的行,只需在单个列的底部附加一个值。任何帮助将不胜感激。
Series.fillna
与 limit=1
一起使用:
df['A'] = df['A'].fillna(3, limit=1)
输出:
A B C D
0 5.0 7.0 2.0 3.0
1 2.0 1.0 NaN 4.0
2 4.0 6.0 NaN 5.0
3 3.0 4.0 NaN 6.0
4 NaN 3.0 NaN NaN
5 NaN NaN NaN NaN