首页 > 解决方案 > 如何将 Panda 列中相等的值移动到新列

问题描述

我有一个熊猫数据框,如下所示:

   user   start  end  label    item
0   1      0    3     food     burger
1   1      4    6     food     cola
0   2      0    3     drink    burger   
1   2      4    6     food     cola
0   3      0    3     food     burger
1   3      7    9     drink    fries  

我想“重新构建”矩阵,以便在“开始”和“结束”列中共享相同值的标签值被移动到单独的列中。对于上面的矩阵,我想得到矩阵:

      start  end    item   label1  label2  label3
0       0    3      burger  food    drink   food   
1       4    6      cola    food    food    nan  
2       7    9      burger  nan     nan     drink 

有谁知道如何解决这个问题?

标签: pythonpandas

解决方案


这是枢轴:

(df.pivot_table(index=['start','end','item'], columns='user', 
               values='label', aggfunc='first')
   .add_prefix('label')
   .reset_index()
)

输出:

user  start  end    item label1 label2 label3
0         0    3  burger   food  drink   food
1         4    6    cola   food   food    NaN
2         7    9   fries    NaN    NaN  drink

推荐阅读