Python 熊猫将列分为多个层次
我有这样一个数据帧:Python 熊猫将列分为多个层次,python,python-2.7,pandas,dataframe,Python,Python 2.7,Pandas,Dataframe,我有这样一个数据帧: df = pd.DataFrame(pd.DataFrame([[1,2,3,4],[5,6,7,8],[9,10,11,12]],columns=["X_a","Y_b","X_b","Y_a"])) X_a Y_b X_b Y_a 0 1 2 3 4 1 5 6 7 8 2 9 10 11 12 现在,我基本上知道如何创建具有多级列的数据框架,方法是基于\uu(下划线)拆分列,并基于大写字
df = pd.DataFrame(pd.DataFrame([[1,2,3,4],[5,6,7,8],[9,10,11,12]],columns=["X_a","Y_b","X_b","Y_a"]))
X_a Y_b X_b Y_a
0 1 2 3 4
1 5 6 7 8
2 9 10 11 12
现在,我基本上知道如何创建具有多级列的数据框架,方法是基于\uu
(下划线)拆分列,并基于大写字母对它们进行分组。上述数据帧上的此转换示例如下:
X Y
a b a b
0 1 3 4 2
1 5 7 8 6
2 9 11 12 10
我试图寻找一个解决方案,但我得到的最接近的是,这并不能完全解决我的问题。那么,除了强行提取列,然后将它们拆分,最后将它们排列在一起之外,在熊猫身上还有什么有效或更快的方法可以做到这一点吗?任何帮助都将不胜感激。到位
df.columns = df.columns.str.split('_', expand=True)
df.sort_index(axis=1)
X Y
a b a b
0 1 3 4 2
1 5 7 8 6
2 9 11 12 10
内联
不改变原作
pd.DataFrame(
df.values, columns=df.columns.str.split('_', expand=True)).sort_index(1)
X Y
a b a b
0 1 3 4 2
1 5 7 8 6
2 9 11 12 10