2017-08-26 91 views
0

Iam使用pandas.read_csv()將一列csv文件導入到我的python腳本中。對數據幀進行迭代並不能給出預期的結果

蔭做這樣:

data = pandas.read_csv(path) 
for i in data: 
    print(i) 

爲什麼它打印列的只有第一個元素?

當我將它轉換爲使用npdata = np.array(data)的numpy數組並打印它時,它會打印除第一個元素以外的所有內容。

其實iam試圖做的是從csv文件加載時間日期列,並希望做一些功能工程,但我有問題,我正確加載它。

+0

嘗試:'print(data)' – Yeile

+0

沒有問題,正確加載它。你的問題是你如何處理數據。通常,使用'print(data.head())'來查看你加載的內容。 – roganjosh

回答

3

因爲迭代data將意味着迭代列名稱,而不是您要查找的名稱。

遍歷行,請使用df.iterrows代替:

data = pandas.read_csv(path) 
for i, row in data.iterrows(): 
    print(row) 

MCVE:

print(df) 

    A B 
0 1 2 
1 3 4 
2 5 6 
3 7 8 
4 9 10 

for d in df: 
    print(d) 

A 
B 

for i, d in df.iterrows(): 
    print(d['A'], d['B']) 

1 2 
3 4 
5 6 
7 8 
9 10 

正如評論所說,如果你想要做的就是採取偷看在您的數據中,打印出df.head

print(df.head(3)) # the arg is any > zero value signifying the number of rows 

    A B 
0 1 2 
1 3 4 
2 5 6 
+0

@ChristianDean我一直犯這個錯誤大聲笑。 –

+0

Np。好的答案,否則。 –

+0

我對這個問題感到困惑。這是否意味着其中一列正在成爲索引?你的回答實際上是正確的,但我不確定它是否在重新閱讀之後解決了這個問題 – roganjosh

相關問題