我正在尝试使用熊猫读取tsv文件(0.5gb),但似乎无法正常工作。我已将代码简化为最简单的形式,但仍然没有运气:
import pandas as pd
import os
rawpath = 'my path'
filename = 'my file name'
finalfile = os.path.join(rawpath, filename)
df = pd.read_csv(finalfile, nrows=5000, sep='\t')
print(df.head())
我尝试对文件进行分块,但是没有运气,read_table也无法正常工作。我进去并释放了机器上尽可能多的内存,但是当我最终收到Pycharm的任何输出时,它说:
pandas.errors.ParserError:标记数据时出错。 C错误:内存不足
有人可以帮助吗?
答案 0 :(得分:0)
尝试设置dtype = object和na_values =“您的NA格式”(可选,如果您知道的话)
此外,请确保您使用了正确的分隔符。
类似:
df = pd.read_csv(finalfile, nrows=5000, sep='\t', dtype=object, na_values = '-NaN')
编辑: 另外,您提到将文件分块。我不确定您的意思是什么,但是我会提到您可以直接使用熊猫而不是长眉大块。最终代码:
mylist = []
for chunk in pd.read_csv(finalfile, sep='\t', dtype=object, na_values = '-NaN', chunksize=100):
mylist.append(chunk)
big_data = pd.concat(mylist, axis= 0)
del mylist