gpt4 book ai didi

python - 如何使用 iterrows 和 iteritems 更快地运行 pandas for 循环

转载 作者:行者123 更新时间:2023-11-28 21:36:27 27 4
gpt4 key购买 nike

我有一个 for 循环:

for j  in range(0,len(df)):
for i in range(0,32):
df.iloc[j,i] = df['split'].iloc[j][i]

这需要更多时间来运行。如何使用一些 iteritems 或 iterrows 或 apply 来优化它?

(我有动态的行数和列数)

示例:

   A  B  split
0 we [w,e]
1 xy [x,y]
2 ad [a,d]
3 cf [c,f]
4 de [d,e]
5 tt [t,t]

应该变成:

   A  B  split
0 w e [w,e]
1 x y [x,y]
2 a d [a,d]
3 c c [c,f]
4 d e [d,e]
5 t t [t,t]

最佳答案

试试这个,

res= df['A'].apply(lambda x:pd.Series(list(x)))
out=pd.concat([df,res],axis=1)

res 将包含按字符分割的新数据帧。然后与旧数据框合并。根据您的意愿重命名列。它甚至可以工作动态范围的字符。

如果我有分隔符会发生什么?

只需稍作修改,

res= df['A'].str.split(';',expand=True)

输入:

     A  split
0 wez [w,e]
1 xy [x,y]
2 ad [a,d]
3 cf [c,f]
4 de [d,e]
5 tt [t,t]

输出:

     A  split  0  1    2
0 wez [w,e] w e z
1 xy [x,y] x y NaN
2 ad [a,d] a d NaN
3 cf [c,f] c f NaN
4 de [d,e] d e NaN
5 tt [t,t] t t NaN

关于python - 如何使用 iterrows 和 iteritems 更快地运行 pandas for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50926084/

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