gpt4 book ai didi

python - 循环 pandas 数据帧的每一行

转载 作者:行者123 更新时间:2023-12-01 00:55:24 25 4
gpt4 key购买 nike

我有一个大型数据框,如果满足特定条件,我想将同一行的值相互除以,并为每个条件创建一个新列。

我尝试了各种循环,但收到错误消息,系列的真值不明确。我认为我已经接近解决方案,但我无法找出最快的方法。

df = pd.DataFrame({'colA': np.random.randn(20), 'colB': np.random.randn(20), 'colC': np.random.randn(20)})
print(df)
x = 0
y = 0.5
for ix, r in df.iterrows():
if (r['colA'] > x) & (r['colA'] < y):
df.loc[ix,str(y)] = df.loc[ix,'colA']/df.loc[ix,'colB']
x += 0.5
y += 0.5

这就是我现在所取得的进展。问题是,在满足条件的每一行之后,x 和 y 都会增加。但我需要对满足条件的所有行进行除法,然后增加 x 和 y。

最佳答案

如果您希望将除法应用于满足条件的所有行,则不应使用 iterrows。这是初始代码的固定版本:

while x <= df['colA'].max():
sub = df.loc[(df['colA'] > x)&(df['colA'] < y)] # filter the dataframe on both conditions
df.loc[sub.index, str(y)] = df['colA']/df['colB']
x += .5
y += .5

关于python - 循环 pandas 数据帧的每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56273529/

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