gpt4 book ai didi

Pandas 在条件下替换列值

转载 作者:行者123 更新时间:2023-12-03 23:12:44 25 4
gpt4 key购买 nike

我有以下数据框:

df = pd.DataFrame({'A' : [1., 2., 3., 4.], 'B' : [4., 3., 2., 1.], 'C' : [pd.NaT,8,pd.NaT,0]})
df

enter image description here

每当 C 与 NaT 不同时,我想将 B 列更改为 C 的值。最终结果如下:

enter image description here

最佳答案

使用combine_first :

df['B'] = df['C'].combine_first(df['B'])
print (df)
A B C
0 1.0 4 NaT
1 2.0 8 8
2 3.0 2 NaT
3 4.0 0 0

如果需要 float :

df['B'] = df['C'].combine_first(df['B']).astype(df['B'].dtype)
print (df)
A B C
0 1.0 4.0 NaT
1 2.0 8.0 8
2 3.0 2.0 NaT
3 4.0 0.0 0

或者masknotnull :

df['B'] = df['B'].mask(df['C'].notnull(), df['C'])
print (df)
A B C
0 1.0 4 NaT
1 2.0 8 8
2 3.0 2 NaT
3 4.0 0 0

或者numpy.where :

df['B'] = np.where(df['C'].notnull(), df['C'], df['B'])
print (df)
A B C
0 1.0 4 NaT
1 2.0 8 8
2 3.0 2 NaT
3 4.0 0 0

关于 Pandas 在条件下替换列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44538075/

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