我正在尝试加载一个大小为2GB的大文本文件并尝试使用pandas在特定列中提取数据
LOCATION_ID PRODUCT_ID PRODUCT_DESC NET_SALES SALES_DATE
------------------------------ ----------- ------------------------------ --------------------------------- ----------
100020 8 Lotto Texas 8.000 01/01/2009
100020 9 Pick 3 105.500 01/01/2009
100020 10 Cash Five 7.000 01/01/2009
100020 12 Texas Two Step
数据看起来像我要做的是提取位置ID中唯一列的数量
我尝试使用pandas.read_csv(文件,chunksize = 4)但我没有在列中获得任何内容只有索引存在。我有点卡住,我能够使用简单的文件读取,但因为文件的大小是如此巨大的python编译器崩溃。如何使用Pandas实现所需的结果?请帮忙
答案 0 :(得分:1)
该文件看起来不像csv,因为似乎没有任何逗号,它甚至看起来都不是分隔文件。您可能有更好的运气将其视为固定宽度格式的文件并使用read_fwf
:
>>> pd.read_fwf("296.dat", skiprows=[1])
LOCATION_ID PRODUCT_ID PRODUCT_DESC NET_SALES SALES_DATE
0 100020 8 Lotto Texas 8.0 01/01/2009
1 100020 9 Pick 3 105.5 01/01/2009
2 100020 10 Cash Five 7.0 01/01/2009
3 100020 12 Texas Two Step NaN NaN
您可以使用chunksize
对fwf
执行相同的read_csv
技巧,因此您可以随时限制内存中的数量。
另请注意,这里我只使用了“推断列宽”默认值;您可能需要手动指定它们,具体取决于您的数据。