首页 > 解决方案 > 导入不规则大小的文本文件

问题描述

我想将具有 11576 行和 7 列的文本文件导入到 pandas 数据框中,然后对其进行整形,使其具有 229 行和 351 列。

在文本文件中,每 34 行左右,有 2 个空格(即该行的第 6 列和第 7 列没有值)。

我想在这一点上对数据进行切片并将所有先前的数据分配为第一行,但是我不知道如何在该点剪切数据并将其全部放在一行中。

我已经尝试过pd.read_csv,但我无法达到我需要的尺寸。

任何建议都会非常棒。谢谢艾玛

是文本文件的链接。

标签: pythonpandasimporttext-files

解决方案


我相信需要read_csv创建DataFrame,然后numpy.reshape选择所有没有最后 2 个的列:

df = pd.read_csv('fieldgen_out1.txt', skiprows=1, header=None, sep='\s+')
#print (df)

#[351 rows x 229 columns]
df = pd.DataFrame(df.values.reshape(351, -1)[:, :-2])
#print (df)

然后如果需要转置:

#[229 rows x 351 columns]
df = pd.DataFrame(df.values.reshape(351, -1)[:, :-2].T)
#print (df)

推荐阅读