2017-08-26 88 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

相关问题