【发布时间】:2018-02-20 03:14:23
【问题描述】:
假设我有以下数据框:
X Y
---+---+---+---
A | B | A | B
--+---+---+---+---
0 | 1 | 2 | 3 | 4
1 | 5 | 6 | 7 | 8
2 | 9 | 10| 11| 12
我想根据多级索引递归拆分它,并将它们保存在一个csv文件中。
例如,文件名 X_A.csv 应包含以下数据框:
X
---
A
--+---
0 | 1
1 | 5
2 | 9
同样,文件 X_B.csv 应该将数据框存储为:
X
---
B
--+---
0 | 2
1 | 6
2 | 10
Y_A 和 Y_B 以此类推。
我正在寻找一种 Pythonic(或高效)的方法来执行此操作,而不是单独迭代列值,因为代码非常大。我尝试通过删除列级别并存储各个列来使用mentioned here 技术,但我希望这样我不必明确提及列名,因为数据框可能会扩展(即在最顶部级别可能有 4 列,例如 W、X、Y 和 Z)。
【问题讨论】:
-
为什么不将两个级别的列名合并为一个
-
如果panda.Dataframe subclass numpy.Ndarray,你不能在上面使用numpy indexing 选择你感兴趣的列,然后使用对象的方法导出到CSV
-
@Wen 我不想改变原来的 df 这就是为什么我不想合并两个级别的列名。
标签: python pandas dataframe multi-index