用 Python Pandas 解开具有多个“Value”列的 DataFrame 的堆叠

2024-10-04 13:17:15 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个如下所示的数据帧:

     keys    sample   verify  
0    foo       a        1      
1    bar       b        2      
2   monty      c        3      
3    foo       d        4      
4    bar       e        5   
5   monty      f        6   

我想要这种形式:

^{pr2}$

拆箱的最好方法是什么?我都试过了pandas.pivot_表()和熊猫。取消堆叠()函数,但pivot表不能使用字母值,unstack函数的工作方式也不是我认为的那样(即堆栈的反向)。我假设你可以一列一列地取消堆栈,并在最后连接数据帧,我主要遇到的问题是unstack函数以及它在做什么。有什么好办法吗?在


Tags: 数据sample方法函数foo堆栈barkeys
1条回答
网友
1楼 · 发布于 2024-10-04 13:17:15
df2 = df.set_index('keys').T.reset_index(drop=True) \
    .T.groupby(level=0).apply(lambda df: df.reset_index(drop=True)) \
    .stack().unstack(1).T

df2.columns = df2.columns.set_levels((df2.columns.levels[1] + 1).astype(str), level=1)
df2.columns = df2.columns.to_series().str.join('_')

df2

enter image description here

相关问题 更多 >