旋转具有重复索引值的pandas数据框

时间:2020-10-06 02:12:44

标签: python pandas dataframe pivot pivot-table

我有一个这样的数据框:

ID      Status     Status_date
1       Active     10/9/2010
1       Closed     12/10/2010
2       Open       2/2/2013
3       Open       12/02/2012
3       Active     2/3/2013
4       Closed     3/3/2009

我想将其设置为如下所示:

ID   Status  Status_date  Status  Status_date  Status  Status_date
1    NaN     NaN          Active  10/9/2010    Closed  12/10/2010
2    Open    2/2/2013     NaN     NaN          NaN     NaN
3    Open    12/2/2012    Active  2/3/2013     NaN     NaN
4    NaN     NaN          NaN     NaN          Closed  NaN

我应该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我不确定您为什么要这样使用数据,但是确实如此:

new_df = (df.pivot('ID','Status',['Status','Status_date'])
   .sort_index(level=(1,0), axis=1)
)
new_df.columns = [x for x,_ in new_df.columns]

输出:

    Status Status_date  Status Status_date Status Status_date
ID                                                           
1   Active   10/9/2010  Closed  12/10/2010    NaN         NaN
2      NaN         NaN     NaN         NaN   Open    2/2/2013
3   Active    2/3/2013     NaN         NaN   Open  12/02/2012
4      NaN         NaN  Closed    3/3/2009    NaN         NaN

请注意,除非您真的知道自己在做什么,否则通常不建议在Pandas中使用重复的列名