gpt4 book ai didi

python-3.x - 根据条件更新两个数据框列

转载 作者:行者123 更新时间:2023-12-04 10:24:51 25 4
gpt4 key购买 nike

我有一个列为“PK”、“Column1”、“Column2”的数据框。
我想更新 Column1 和 Column2 如下:

If Column1 > Column2 then (Column1 = Column1 - Column2) and at the same time Column2 = 0

相似地
If Column1 < Column2 then (Column2 = Column2 - Column1) and at the same time Column1 = 0

我尝试过以下操作,但没有给出预期的结果:
df["Column1"] = np.where(df['Column1'] > df['Column2'], df['Column1'] - df['Column2'], 0)
df["Column2"] = np.where(df['Column1'] < df['Column2'], df['Column2'] - df['Column1'], 0)

最佳答案

使用 DataFrame.assign 为避免测试覆盖的列 Column1在代码的第二行:

df = pd.DataFrame({
'Column1':[4,5,4,5,5,4],
'Column2':[7,8,9,4,2,3],

})
print (df)
Column1 Column2
0 4 7
1 5 8
2 4 9
3 5 4
4 5 2
5 4 3

a = np.where(df['Column1'] > df['Column2'], df['Column1'] - df['Column2'], 0)
b = np.where(df['Column1'] < df['Column2'], df['Column2'] - df['Column1'], 0)

df = df.assign(Column1 = a, Column2 = b)
print (df)
Column1 Column2
0 0 3
1 0 3
2 0 5
3 1 0
4 3 0
5 1 0

关于python-3.x - 根据条件更新两个数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60665624/

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