当前位置: 代码迷 >> python >> 将数据帧附加到现有空数据帧时,在两列之间跳过一些列
  详细解决方案

将数据帧附加到现有空数据帧时,在两列之间跳过一些列

热度:19   发布时间:2023-07-16 10:09:05.0

目前我正在从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

我用重新索引尝试了一些东西,但我无法弄明白。 欢迎任何帮助。

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

谢谢阅读

这个答案假设您无法改变上游读取数据的方式。 与往常一样,最好在源处理这些类型的格式更改。 如果这是不可能的,这是一种解析后的方法。


你可以在这里使用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
  相关解决方案