如何转换此表
id date_create date_status_change status_old status_new
1 01.01.2017 02.01.2017 new enrolled
1 01.01.2017 05.03.2017 enrolled paid
1 01.01.2017 21.10.2017 paid closed
2 02.02.2017 13.04.2017 new enrolled
2 02.02.2017 14.04.2017 enrolled closed
3 03.03.2017 04.03.2017 new visited
3 03.03.2017 05.03.2017 visited enrolled
3 03.03.2017 01.05.2017 enrolled accepted
3 03.03.2017 11.06.2017 accepted paid
3 03.03.2017 25.07.2017 paid closed
到此
id date_create new visited enrolled accepted paid closed
1 01.01.2017 01.01.2017 NaN 02.01.2017 NaN 05.03.2017 21.10.2017
2 02.02.2017 02.02.2017 NaN 13.04.2017 NaN NaN 14.04.2017
3 03.03.2017 03.03.2017 04.03.2017 05.03.2017 01.05.2017 11.06.2017 25.07.2017
无需迭代列并检查是否存在状态?我尝试使用pd.crosstab(df['contact_id'], [df['status_old'], df['status_new']])
,但它没有抓住日期
答案 0 :(得分:1)
尝试
df.set_index(['id','date_create','status_new']).date_status_change.unstack()
status_new accepted closed enrolled paid visited
id date_create
1 01.01.2017 None 21.10.2017 02.01.2017 05.03.2017 None
2 02.02.2017 None 14.04.2017 13.04.2017 None None
3 03.03.2017 01.05.2017 25.07.2017 05.03.2017 11.06.2017 04.03.2017