为什么我使用pandas读取csv文件的对象是TextFileReader对象

Lon*_* Ye 3 python pandas

我用pandas读了一个csv文件:

data_raw = pd.read_csv(filename, chunksize=chunksize)
print(data_raw['id'])
Run Code Online (Sandbox Code Playgroud)

然后,它报告TypeError:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'TextFileReader' object has no attribute '__getitem__'
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能解决问题?如何将data_raw更改为dataFrame对象?我使用python2.7和pandas v0.19.1

Mih*_* T. 12

解决此问题的一种方法是nrowspd.read_csv()函数中设置参数,这样您就可以选择要加载到数据帧中的数据子集。当然,缺点是您将无法查看和使用完整数据集。代码示例:

data = pd.read_csv(filename, nrows=100000)
Run Code Online (Sandbox Code Playgroud)


DYZ*_*DYZ 6

当您将chunksize选项传递给read_csv()它时,它会创建一个TextFileReader阅读器 - 一个类似开放文件的对象,可用于以块的形式读取原始文件.请参阅此处的用法示例:如何使用pandas读取6 GB csv文件 如果未提供此选项,则该函数确实会读取文件内容.