gpt4 book ai didi

python - 如何将 pd.read_table 与 StringIO 文件对象一起使用?

转载 作者:太空宇宙 更新时间:2023-11-04 00:50:45 26 4
gpt4 key购买 nike

我 checkout read_table with stringIO and messy file但它有一些我无法复制的东西,比如这个原始对象。无论如何,我想将一个表写入 StringIO 文件对象,然后使用 read_table< 在 pandas 中打开该 StringIO 文件对象 方法,但我收到 EmptyDataError: No columns to parse from file。我要写入的文件太大,无法存储在内存中,因此我想分块读取它。使用 StringIO 作为测试示例。使用 Python 3.5.1 顺便说一下

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)))

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

最佳答案

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

关于python - 如何将 pd.read_table 与 StringIO 文件对象一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37267806/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com