迭代数据帧不会给出预期的结果

时间:2017-08-26 17:22:38

标签: python pandas csv dataframe

我使用pandas.read_csv()将csv文件列导入到我的python脚本中。

我喜欢这样做:

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

为什么它只打印列的第一个元素?

当我使用npdata = np.array(data)将其转换为numpy数组时,当我打印它时,它会打印除第一个元素之外的所有内容。

实际上我想要做的是从csv文件加载时间日期列并想要做一些特征工程,但我有问题我正确加载它。

1 个答案:

答案 0 :(得分: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