如何在Python中从循环中的原始数据帧的行构建新的数据帧



我有一个用特定数据填充的数据帧df1和空的数据帧df2。

df1 = pd.DataFrame({'a':[1,2,3,4,5], 'b':[6,7,8,9,0]}, columns=['a','b'])
df2 = pd.DataFrame([])

我用iterrows在df1上循环,并希望用df1的一些行填充df2。我尝试了这个,但得到了空的数据帧df2:

for idx, row in df1.iterrows():
df2.append(pd.DataFrame(row, index=[0]), ignore_index=True)

我知道我可以简化简单的追加,但我的目标用例有一个复杂的条件,这就是我使用循环的原因。请帮我改正。BR

对不起!愚蠢的错误——以为作业是自动完成的,但事实并非如此。这就是我想要的:df2 = df2.append(row, ignore_index=True)

我想您想根据条件用df1中的行填充df2。

例如,如果您想要a列>2的所有行,您可以写:

df2 = df1[df1['a']>2] 

你不需要循环,循环在时间和内存上都太昂贵了。请使用Panda优化的功能。

最新更新