2016-12-08 236 views
0

我已经使用Pandas加载了一个CSV文件。 CSV文件有4000行。 它正确加载。打印数据框时,将打印所有4000行。 但是当我使用“for”循环遍历行时,它只打印文件中的第一行。通过CSV文件迭代并打印行时,只打印第一行

这是我的代码:

import pandas as pd 

df = pd.read_csv('EX2_EM_GMM.csv') 
for sample in df: 
    print sample 

的想法? 谢谢!

+1

的可能的复制[如何循环排在熊猫一个数据帧? ](http://stackoverflow.com/questions/16476924/how-to-iterate-over-rows-in-a-dataframe-in-pandas) – amin

回答

0

使用iterrows()循环遍历每一行。默认的迭代将只显示列。

for sample in df.iterrows(): 
    print sample 
+0

感谢您的答案! –

0

用于遍历DataFrame行,你可以使用.iterrows()功能。

for index, row in df.iterrows(): 
    # Process each row 
0

在你的情况,我认为下面的例子提供了解决方案,也提供 执行的时间。对于这一数额行我会用itertuples()

itertuples()iterrows()

import pandas as pd 
import numpy as np 

di = {k:np.random.randn(4000) for k in ["a", "b", "c", "d"]} 
df = pd.DataFrame(di) 

for row in df.itertuples(): 
    print row 

%timeit [row for row in df.itertuples()] 

%timeit [row for row in df.iterrows()] 

output sample result of execution time

+0

感谢您的详细解答! –