小编FGr*_*een的帖子

将数据帧从long转换为wide,同时保留值的顺序(dtype datetime)

我有一个df看起来类似于此的数据框(除了Visit Date与每个相关的列中的条目数Client ID达到74,并且有几百个唯一Client IDs- 我在这里简化了它).

Visit Date  Client ID
2016-05-25  C1009404
2016-06-30  C1009404
2016-07-14  C1009404
2016-07-20  C1009405
2016-08-03  C1009405
2016-08-08  C1009405
2016-08-10  C1009405
2016-08-15  C1009406
2016-08-17  C1009406
2016-08-24  C1009406
Run Code Online (Sandbox Code Playgroud)

我想将它从长到宽转换,使它看起来像这样:

Client ID  Visit_1     Visit_2     Visit_3     Visit_4
C1009404   2016-05-25  2016-06-30  2016-07-14
C1009405   2016-07-20  2016-08-03  2016-08-08  2016-08-10
C1009406   2016-08-15  2016-08-17  2016-08-24
Run Code Online (Sandbox Code Playgroud)

我试过以下代码:

df_wide = df.groupby(['Client ID'], as_index=False).agg(lambda x: ', '.join(set(x.astype(str))))
df_wide = pd.concat([df_wide[['Client ID','ENROLLED_DT']], df_wide['VISIT_DT'].str.split(',', expand=True)], axis=1)
df_wide = df_wide.rename(columns={0: 'Visit_1', 1: 'Visit_2', 2: …
Run Code Online (Sandbox Code Playgroud)

python datetime python-datetime pandas

2
推荐指数
1
解决办法
26
查看次数

标签 统计

datetime ×1

pandas ×1

python ×1

python-datetime ×1