Python 使用重复的索引值透视数据帧
我有这样一个数据帧:Python 使用重复的索引值透视数据帧,python,pandas,dataframe,pivot,pivot-table,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
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
我想让它看起来像这样:
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
我应该如何解决这个问题?我不知道您为什么要这样使用数据,但这里是:
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中使用重复的列名,除非您确实知道自己在做什么我不确定您为什么要这样使用数据,但这里是:
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中使用重复的列名,除非您确实知道自己在做什么我仍然收到错误:ValueError:Index包含重复的条目,不能reshape@Soham看起来每个ID都有多个相同的状态,例如ID
1的2Open
。此案例未显示在示例数据中。您需要先决定如何处理这些内容。我仍然得到错误:ValueError:Index包含重复的条目,不能reshape@Soham看起来每个ID都有多个相同的状态,例如ID1的2Open
。此案例未显示在示例数据中。你需要先决定如何处理这些。