gpt4 book ai didi

python - 根据 Pandas DataFrame 中的值将行值复制到相邻列

转载 作者:行者123 更新时间:2023-12-01 03:19:08 24 4
gpt4 key购买 nike

我有一个 pandas DataFrame,有两列,A 和 B,其中包含数值或 NaN。如果一列中出现数值,则另一列中的相应单元格将始终为 NaN,例如:

    A    B
0 123 NaN
1 456 NaN
2 NaN 789

我想复制(或者移动)A 列中的任何非 NaN 值以覆盖 B 列中相应的 NaN,例如:

    A    B
0 123 123
1 456 456
2 NaN 789

基于 this reply 我提出的类似问题:

mask = (df['A'] != np.nan)&(df['B'] == np.nan)
df['B'][mask] = df['A'][mask]

但这不会导致任何变化。谁能解释一下我哪里出错了?

最佳答案

您可以使用 combine_firstfillna :

df.B = df.B.combine_first(df.A)
print (df)
A B
0 123.0 123.0
1 456.0 456.0
2 NaN 789.0

或者:

df.B = df.B.fillna(df.A)
print (df)
A B
0 123.0 123.0
1 456.0 456.0
2 NaN 789.0

Anf 如果在将强制转换替换为 intB 中没有 NaN 值:

df.B = df.B.fillna(df.A).astype(int)
print (df)
A B
0 123.0 123
1 456.0 456
2 NaN 789

关于python - 根据 Pandas DataFrame 中的值将行值复制到相邻列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42132746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com