【发布时间】:2016-09-06 04:26:52
【问题描述】:
我想解开一个多索引数据框,如下所示:
进入另一个索引为“Worker_id”、列名为“Task_id”、值为“Date_cnt”的数据框。
有人可以帮忙吗?
我试过 df.unstack,但它会自动将“Date_cnt”而不是“Task_id”作为列名
谢谢!
【问题讨论】:
我想解开一个多索引数据框,如下所示:
进入另一个索引为“Worker_id”、列名为“Task_id”、值为“Date_cnt”的数据框。
有人可以帮忙吗?
我试过 df.unstack,但它会自动将“Date_cnt”而不是“Task_id”作为列名
谢谢!
【问题讨论】:
我想这就是你想要的:
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 是多索引列中的最顶部字段 - 如果在取消堆叠之前有多个列,它们都将位于最顶部。由于您不想保留它,因此您可以删除该列。
【讨论】: