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

新手上路,请多包涵

我使用 pandas 读取了一个 csv 文件:

 data_raw = pd.read_csv(filename, chunksize=chunksize)
print(data_raw['id'])

然后,它报告 TypeError:

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

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

原文由 Long Ye 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 956
2 个回答

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

 data = pd.read_csv(filename, nrows=100000)

原文由 Mihajlo T. 发布,翻译遵循 CC BY-SA 4.0 许可协议

当您将 chunksize 选项传递给 read_csv() 时,它会创建一个 TextFileReader 一个类似打开文件的对象,可以在原始文件中读取该对象.请参阅此处的用法示例: How to read a 6 GB csv file with pandas 当未提供此选项时,该函数确实会读取文件内容。

原文由 DYZ 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题