Pandas 如何在层次结构下放置两个现有列?
给定以下数据帧:Pandas 如何在层次结构下放置两个现有列?,pandas,Pandas,给定以下数据帧: import pandas as pd df = pd.DataFrame(randn(10, 5), columns=['a', 'b1', 'b2', 'c1', 'c2']) 如何将另一个层次结构级别添加到将绑定“b”下的“b1”和“b2”以及“c”下的“c1”、“c2”的列中 我只找到了在新数据帧中生成层次索引的示例 谢谢。您可以通过定义多索引(由原始列标签和新级别组成)并将其分配给列(覆盖现有列)来完成此操作: 在本例中,我通过获取原始列的第一个字符来创建新的索引级
import pandas as pd
df = pd.DataFrame(randn(10, 5), columns=['a', 'b1', 'b2', 'c1', 'c2'])
如何将另一个层次结构级别添加到将绑定“b”下的“b1”和“b2”以及“c”下的“c1”、“c2”的列中
我只找到了在新数据帧中生成层次索引的示例
谢谢。您可以通过定义多索引(由原始列标签和新级别组成)并将其分配给列(覆盖现有列)来完成此操作:
在本例中,我通过获取原始列的第一个字符来创建新的索引级别,但如果需要,当然可以在此处应用另一个函数。可以通过定义多索引(由原始列标签和新级别组成)并将其分配给列(覆盖现有列)来实现这一点:
在本例中,我通过获取原始列的第一个字符来创建新的索引级别,但如果需要,当然可以在此处应用另一个函数。可以通过定义多索引(由原始列标签和新级别组成)并将其分配给列(覆盖现有列)来实现这一点:
在本例中,我通过获取原始列的第一个字符来创建新的索引级别,但如果需要,当然可以在此处应用另一个函数。可以通过定义多索引(由原始列标签和新级别组成)并将其分配给列(覆盖现有列)来实现这一点: 在本例中,我通过获取原始列的第一个字符来创建新的索引级别,但是如果需要,当然可以在这里应用另一个函数
In [73]: upper_level = [i[0] for i in df.columns]
In [74]: df.columns = pd.MultiIndex.from_arrays([upper_level, df.columns])
In [75]: df
Out[75]:
a b c
a b1 b2 c1 c2
0 -1.656965 1.838595 -1.745855 -2.024337 0.087243
1 0.573167 0.946658 0.691831 -1.107968 -0.911961
2 0.279150 0.038185 0.970203 -0.129443 0.977402
3 -1.192675 2.103922 -1.170816 1.433252 0.251258
4 1.465639 1.925409 -0.759904 1.062088 0.555272
5 -0.667394 -0.941874 0.192990 0.787811 -1.236446
6 -0.016380 -0.106379 -1.328149 -0.576587 0.269650
7 -1.040711 -0.156927 0.056562 -1.073571 0.899144
8 -0.962474 0.505168 0.348957 1.640170 -0.376509
9 -0.431045 0.228514 -1.447591 0.058036 0.126517