将数据框追加到现有的空数据框时,在两列之间跳过一些列

时间:2018-10-04 21:49:01

标签: python python-3.x pandas reindex

目前,我正在从pdf提取数据并将其放入csv文件中。我将解释其工作原理。

首先,我创建一个空的数据框:

ndataFrame = pandas.DataFrame()

然后我读取了数据。为简单起见,假设每个pdf的数据都相同:

data = {'shoe': ['a', 'b'], 'fury': ['c','d','e','f'], 'chaos': ['g','h']}
dataFrame = pandas.DataFrame({k:pandas.Series(v) for k, v in data.items()})

然后我将此数据附加到空数据框中:

ndataFrame = ndataFrame.append(dataFrame)

这是输出:

  shoe fury chaos
0    a    c     g
1    b    d     h
2  NaN    e   NaN
3  NaN    f   NaN

但是,现在出现了问题。我需要一些列(比方说4个)来使列在愤怒和混乱之间是空的。这是我想要的输出:

  shoe fury                        chaos
0    a    c                         g
1    b    d                         h
2  NaN    e                         NaN
3  NaN    f                         NaN

我尝试了一些重新索引的操作,但是我无法弄清楚。欢迎任何帮助。

顺便说一句,我想要的输出可能令人困惑。为了清楚起见,我需要在狂怒和混乱之间将某些列完全清空(这是因为其他一些数据是手动输入的)。

感谢阅读

1 个答案:

答案 0 :(得分:4)

此答案假定您无权更改上游读取数据的方式。与往常一样,最好从源头处处理这些类型的格式更改。如果无法做到这一点,则有一种解析之后的方法。


您可以在此处使用reindex,并使用numpy.insert添加四列:

dataFrame.reindex(columns=np.insert(dataFrame.columns, 2, [1,2,3,4]))

  shoe fury   1   2   3   4 chaos
0    a    c NaN NaN NaN NaN     g
1    b    d NaN NaN NaN NaN     h
2  NaN    e NaN NaN NaN NaN   NaN
3  NaN    f NaN NaN NaN NaN   NaN