我想要取消堆叠多索引数据框,如下所示:
进入另一个索引为'Worker_id'的数据框,列名为'Task_id',值为'Date_cnt'。
有人可以帮忙吗?
我尝试过df.unstack,但它自动将'Date_cnt',而不是'Task_id'作为列名
谢谢!
答案 0 :(得分:1)
我认为这就是你想要的:
import pandas as pd
df = pd.DataFrame([[4529,338,6],[4529,340,4],[4529,346,4],[4529,388,4],[4529,824,1]], columns = ['Worker_id','Task_id','Date_cnt'])
df = df.set_index(['Worker_id','Task_id']).unstack()
df.columns = df.columns.droplevel()
print df
Task_id 338 340 346 388 824
Worker_id
4529 6 4 4 4 1
因为只有一列,所以Date_cnt是列multiindex中的顶部字段 - 如果在取消堆栈之前有多列,它们都将位于最顶层。由于您不想保留它,您可以删除该列。