gpt4 book ai didi

python - 将 pandas 连接的列后缀转换为 MultiIndex

转载 作者:太空宇宙 更新时间:2023-11-03 14:41:07 24 4
gpt4 key购买 nike

我有两个具有(不一定)相同索引和列名称的 pandas DataFrame。

>>> df_L = pd.DataFrame({'X': [1, 3], 
'Y': [5, 7]})

>>> df_R = pd.DataFrame({'X': [2, 4],
'Y': [6, 8]})

我可以将它们连接在一起并分配后缀。

>>> df_L.join(df_R, lsuffix='_L', rsuffix='_R')

X_L Y_L X_R Y_R
0 1 5 2 6
1 3 7 4 8

但我想要的是在“X”和“Y”下创建“L”和“R”子列。

所需的 DataFrame 如下所示:

>>> pd.DataFrame(columns=pd.MultiIndex.from_product([['X', 'Y'], ['L', 'R']]), 
data=[[1, 5, 2, 6],
[3, 7, 4, 8]])

X Y
L R L R
0 1 5 2 6
1 3 7 4 8

有没有办法将两个原始 DataFrame 组合起来以获得所需的 DataFrame?

最佳答案

您可以沿第一个轴将 pd.concatkeys 参数一起使用:

df = pd.concat([df_L, df_R], keys=['L','R'],axis=1).swaplevel(0,1,axis=1).sort_index(level=0, axis=1)

>>> df
X Y
L R L R
0 1 2 5 6
1 3 4 7 8

关于python - 将 pandas 连接的列后缀转换为 MultiIndex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53125606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com