如何在StringIO文件对象中使用pd.read_table?

时间:2016-05-17 05:26:50

标签: python pandas

我检查了read_table with stringIO and messy file但它有一些我无法像这个原始对象那样重现的东西。无论如何,我想写一个表到StringIO文件对象,然后使用StringIO方法在pandas中打开read_table文件对象,但我得到{{1} }。我要写的文件太大而无法存储在内存中,所以我想以块的形式阅读它。使用EmptyDataError: No columns to parse from file作为测试示例。使用Python 3.5.1 btw

StringIO

1 个答案:

答案 0 :(得分:3)

StringIO使用指针跟踪流中的当前位置。将所有数据写入流后,使用f.seek(0)将指针设置回开始。

import numpy as np
import pandas as pd
from io import StringIO

#StringIO to write to
f = StringIO()

#Write to StringIO
dist = np.random.normal(100, 30, 10000)
for idx,s in enumerate(dist):
    f.write('{}\t{}\t{}\n'.format("label_A-%d" % idx, "label_B-%d" % idx, str(s)))

# rewind the stream
f.seek(0)

#Pandas DataFrame from it
DF = pd.read_table(f,sep="\t",header=None)
#EmptyDataError: No columns to parse from file