gpt4 book ai didi

python - 使用 pandas 将值从一列替换为另一列?

转载 作者:太空宇宙 更新时间:2023-11-03 14:20:55 25 4
gpt4 key购买 nike

我有一个数据框:

       subtracted      Subs        hrs  
0 281871.120 450878.77 0.00
1 221343.432 229535.34 0.00
2 197454.408 32080.93 0.00
3 41934.000 -9853.07 32080.93

我想将正值(相对于 Subs 列)从减法列替换为 hrs 列。

预期输出:

       subtracted      Subs        hrs  
0 281871.120 450878.77 281871.120
1 221343.432 229535.34 221343.432
2 197454.408 32080.93 197454.408
3 41934.000 -9853.07 32080.93

有人可以建议我正确的方法吗?

最佳答案

您可以用 loc, where 正值创建的掩码替换或numpy.where :

m = df['Subs'] > 0
df.loc[m, 'hrs'] = df['subtracted']
<小时/>
df['hrs'] = df['subtracted'].where(m, df['hrs'])
<小时/>
df['hrs'] = np.where(m, df['subtracted'], df['hrs'])
<小时/>
print (df)
subtracted Subs hrs
0 281871.120 450878.77 281871.120
1 221343.432 229535.34 221343.432
2 197454.408 32080.93 197454.408
3 41934.000 -9853.07 32080.930

对于由负值创建的掩码,可以使用 mask :

m = df['Subs'] < 0
df['hrs'] = np.where(m, df['hrs'], df['subtracted'])
<小时/>
df['hrs'] = df['subtracted'].mask(m, df['hrs'])

关于python - 使用 pandas 将值从一列替换为另一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47951784/

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