我有一个由标签分隔的大文件文件,文件大小为6.9 GB。我想通过使用熊猫来阅读它。我尝试过很多代码但没有成功。以下是我使用的代码:
chunksize = 10 ** 6
for chunk in pd.read_csv('path/Table_CpG__Avg_methylation_data.txt', sep = '\t', iterator=True,):
chunk.dtypes
g = pd.DataFrame(data = chunk)
g.dtypes
g['v3']=g[['v1']]+1
dff_meth= g[['v2','v1','v3','Avg_of_Methy']]
dff_meth.to_csv("path/Table_All_CpG_methylation_data.bed", sep='\t',index=False,index_label=None)
但是这段代码不起作用。如果任何人可以提供一些帮助
答案 0 :(得分:0)
我相信你可能想要这样的东西:
chunksize = 10**6
for chunk in pd.read_csv('input_file', sep = '\t', chunksize = chunksize):
# Your code goes here... for example:
chunk.iloc[:,3]=chunk.iloc[:,1]+1
dff_meth = chunk.iloc[:,[1,3]]
# chunk is already a data frame, so no need to use pd.DataFrame(data = chunk)
# If you want to print dtypes:
print(chunk.dtypes)
#finally we write to an output file, appending:
dff_meth.to_csv('output_file', sep='\t', index=False, index_label=None, header = None , mode = 'a')
尝试使用一些较小的文件和一个小的chunksize来查看它是否符合您的要求。
答案 1 :(得分:0)
您缺少chunksize参数。
chunksize = 10 ** 6
for chunk in pd.read_csv('your_file.txt', sep ='\t', chunksize = chunksize):
#your code
完整文档http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html