Pandas 如何在没有嵌套for循环的情况下遍历数据帧?

Pandas 如何在没有嵌套for循环的情况下遍历数据帧?,pandas,Pandas,如何在不嵌套循环的情况下遍历pandas中的数据帧 我的代码是: df = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],columns=['a','b','c']) 也许您想尝试一下遍历每一行和每一列 print([df.loc[row, col] for row in df.index for col in df.columns]) 这将产生: [1, 2, 3, 4, 5, 6, 7, 8, 9] 也许您想尝试一下遍历每一行和每一列 print([df

如何在不嵌套循环的情况下遍历pandas中的数据帧

我的代码是:

df = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],columns=['a','b','c'])

也许您想尝试一下遍历每一行和每一列

print([df.loc[row, col] for row in df.index for col in df.columns])
这将产生:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

也许您想尝试一下遍历每一行和每一列

print([df.loc[row, col] for row in df.index for col in df.columns])
这将产生:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

我认为这样更快:

[i for i in df.values.reshape((df.shape[0]*df.shape[1]))]

%%timeit
给出了
8.35µs±137 ns/圈(平均±标准偏差为7次,每次100000圈)

我认为这样更快:

[i for i in df.values.reshape((df.shape[0]*df.shape[1]))]

%%timeit
给出了
8.35µs±137 ns/循环(7次运行的平均值±标准偏差,每个循环100000次)

您好,欢迎使用SO,请提供一个可重复的示例。也请阅读Hi,欢迎使用SO,请提供一个可复制的示例。另外,请阅读它的速度惊人地快(快9倍)。感谢您向我们展示了一种改进代码的替代方法。我发现了一些有趣的东西。当我使用numpy.ravel()时,它可以再节省30%的时间<代码>[i for i in df.values.ravel()]@Amy Chou,伟大的解决方案!它的速度快得惊人(快了9倍)。感谢您向我们展示了一种改进代码的替代方法。我发现了一些有趣的东西。当我使用numpy.ravel()时,它可以再节省30%的时间<代码>[i for i in df.values.ravel()]@Amy Chou,伟大的解决方案!