Skip to main content
 首页 » 编程设计

python之我需要你关于 python pandas 中 read_fwf 的帮助

2025年05月04日15JeffreyZhao

文本文件的例子是图片

根据文件,在'chapter'之后会改变数据的方向 换句话说,阅读方向从水平变为垂直。

为了解决这个大问题,我在pandas模块中找到了read_fwf并应用了,但是失败了。

linefwf = pandas.read_fwf('File.txt', widths=[33,33,33], header=None, nwors = 3) 

类别(章节、标题、作业)之间的差距是 33。

但是命令 (linefwf) 打印所有页面行,其中包括标题、日期、预订等水平类别以及空白行。

拜托,我想知道'如何只导出垂直数据'

请您参考如下方法:

让我在黑暗中试一试:您希望将此表变成一列(也称为“垂直类别”),而忽略其他列?

我没有你的准确文本,所以我估计了。我的列宽与您的不同 ([11,21,31]),并且我省略了 nwors 参数(您可能打算使用 nrows ,但在这种情况下是多余的)。虽然列规范不是很精确,但几秒钟的摆弄让我得到了一个可行的 DataFrame:

这是非常典型的读入数据集。让我们稍微清理一下,给它真正的列名,并去掉分隔行:

df.columns = list(df.loc[0]) 
df = df.ix[2:6] 

这具有以下效果:

df 留给我们:

我们不会花时间重新索引行。假设我们想要某列的值,我们可以通过索引获取:

df['Chapter'] 

产量:

2    1-1 
3    1-2 
4    1-3 
5    1-4 
6    1-5 
Name: Chapter, dtype: object 

或者,如果您不希望将其作为 pandas.Series,而是将其作为原生 Python list:

list(df['Chapter']) 

产量:

['1-1', '1-2', '1-3', '1-4', '1-5']