我需要你对python pandas中read_fwf的帮助

时间:2015-03-28 17:50:24

标签: python pandas

文本文件的例子是图片 enter image description here

根据文件,数据的方向将在“"”章节之后改变。 换句话说,阅读方向从水平变为垂直。

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

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

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

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

请,我想知道'如何仅导出垂直数据'

1 个答案:

答案 0 :(得分:6)

让我在黑暗中采取刺:你希望把这个表变成一个列(又名"垂直类别"),忽略其他列?

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

enter image description here

这是读入数据集的典型特征。让我们稍微清理它,给它真正的列名,并取出分隔符行:

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

这具有以下效果:

enter image description here

df留给我们:

enter image description here

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

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']
相关问题