通过将每列的宽度定义为字符数来读取python中的数据

通过将每列的宽度定义为字符数来读取python中的数据,python,csv,pandas,numpy,data-analysis,Python,Csv,Pandas,Numpy,Data Analysis,我试图读取一个文件,其中的列由变量空格分隔。我想知道是否有一种方法可以通过定义每列的宽度来读取该文件,即根据为该列保留的字符数 例如: A B C D - ---------- -- --- 1 foo 32 9.5 4 bar 5.4 5 foofoo_bar 44 假设我们必须阅读上述数据。请注意,有些条目在C列和D列中不存在。但是,请注意,文件中的第二行(带破折号的一行)指示特定列可以具有的最大字符数 因此,问题是给定了数据集中每列

我试图读取一个文件,其中的列由变量空格分隔。我想知道是否有一种方法可以通过定义每列的宽度来读取该文件,即根据为该列保留的字符数

例如:

A B          C  D
- ---------- -- ---
1 foo        32 9.5
4 bar           5.4
5 foofoo_bar 44 
假设我们必须阅读上述数据。请注意,有些条目在C列和D列中不存在。但是,请注意,文件中的第二行(带破折号的一行)指示特定列可以具有的最大字符数


因此,问题是给定了数据集中每列的最大宽度,是否有一种方法可以使用pandas或任何其他包在python中读取数据集?

您应该使用。它代表读取固定宽度文件。

您应该使用。它代表读取的固定宽度文件。

np.genfromtxt的分隔符可以是列宽列表而不是分隔符字符。

np.genfromtxt的分隔符可以是列宽列表而不是分隔符字符。

这是一个很好的功能。不幸的是,我发布这个问题的数据有点损坏,所以即使这个函数在那里也不起作用。但它在一个类似的未损坏数据集上工作,该数据集的格式与此完全相同。谢谢你的回答!默认情况下,它将尝试推断固定宽度的列大小。对于再现性,您可能想知道推断的规格是什么,您可以使用:pd.io.parsers.FixedWidthReaderpath.openmode=r,colspecs=infere,delimiter=None,comment=None.colspecs这是一个很好的函数。不幸的是,我发布这个问题的数据有点损坏,所以即使这个函数在那里也不起作用。但它在一个类似的未损坏数据集上工作,该数据集的格式与此完全相同。谢谢你的回答!默认情况下,它将尝试推断固定宽度的列大小。对于再现性,您可能想知道推断的规格是什么,您可以通过以下方法获得:pd.io.parsers.FixedWidthReaderpath.openmode=r,colspecs=infere,delimiter=None,comment=None.colspecs