将值附加到单个 df 列,而不连接行

问题描述 投票:0回答:1

我有一个 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”,但我不想要一个全新的行,只需在单个列的底部附加一个值。任何帮助将不胜感激。

pandas dataframe concatenation append
1个回答
0
投票

您可以将

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
© www.soinside.com 2019 - 2024. All rights reserved.