我用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
解决此问题的一种方法是nrows在pd.read_csv()函数中设置参数,这样您就可以选择要加载到数据帧中的数据子集。当然,缺点是您将无法查看和使用完整数据集。代码示例:
data = pd.read_csv(filename, nrows=100000)
Run Code Online (Sandbox Code Playgroud)
当您将chunksize选项传递给read_csv()它时,它会创建一个TextFileReader阅读器 - 一个类似开放文件的对象,可用于以块的形式读取原始文件.请参阅此处的用法示例:如何使用pandas读取6 GB csv文件
如果未提供此选项,则该函数确实会读取文件内容.