gpt4 book ai didi

python - 简化 Pandas 表达

转载 作者:太空宇宙 更新时间:2023-11-04 03:27:40 29 4
gpt4 key购买 nike

这不是一个很好的问题,但它是这样的:
我正在结合 DataFrame 的几列进行非常简单的计算,但前提是一列具有特定值。想法是:

if df.x==1:
df.y = df.y - df.a/df.b

现在当然循环很慢,所以我在 DataFrame 的子集上这样做,但这很快就会变得非常冗长:

df.loc[df.x==1, 'y'] = df.loc[df.x==1, 'y'] - df.loc[df.x==1, 'a']/df.loc[df.x==1, 'b']

我觉得有更好的方法可以做到这一点,有什么想法吗?

最佳答案

正如@EdChum 在他的评论中提到的,您可以直接使用.loc。您可以使用 -= 符号进一步简化。

df = pd.DataFrame({'x': [1, 2, 3], 
'y': [1, 2, 3],
'a': [1, 2, 3],
'b': [2, 2, 2]})

>>> df
a b x y
0 1 2 1 1
1 2 2 2 2
2 3 2 3 3

df.loc[df.x==1, 'y'] -= df.a / df.b

>>> df
a b x y
0 1 2 1 0.5
1 2 2 2 2.0
2 3 2 3 3.0

关于python - 简化 Pandas 表达,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32381834/

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