取消堆叠多索引数据帧

时间:2016-05-11 00:52:04

标签: python dataframe stack

我想要取消堆叠多索引数据框,如下所示:

original dataframe

进入另一个索引为'Worker_id'的数据框,列名为'Task_id',值为'Date_cnt'。

有人可以帮忙吗?

我尝试过df.unstack,但它自动将'Date_cnt',而不是'Task_id'作为列名

谢谢!

1 个答案:

答案 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中的顶部字段 - 如果在取消堆栈之前有多列,它们都将位于最顶层。由于您不想保留它,您可以删除该列。