Pivot/Crosstab/Unstack 一个数据框

Pivot/Crosstab/Unstack a Dataframe

有必要将以下数据分解成一个数据透视表 table,而不需要聚合。鉴于规范化,我正在尝试创建一个 table 来旋转数据,以便我可以分析每个 incident_number.

的时间

这是数据框:

|incident|status|time|unit_num|
|123|dispatch|1/19/2019 09:04:59|ambulance1|
|123|enroute|1/19/2019 09:06:59|ambulance1|
|123|onscene|1/19/2019 09:14:59|ambulance1|
|123|available|1/19/2019 09:24:59|ambulance1|
|123|dispatch|1/19/2019 09:04:59|ambulance2|
|123|enroute|1/19/2019 09:08:59|ambulance2|
|123|onscene|1/19/2019 09:13:59|ambulance2|
|123|available|1/19/2019 09:34:59|ambulance2|

我试图通过 pivot/unstack 完成的是以下未产生预期结果的布局

Incident | Unit | Dispatch | Enroute | Onscene | Available
123 | ambulance1 | associated times
123 | ambulance2 | associated times

如有任何帮助,我们将不胜感激

谢谢。

IIUC,你可以试试:

df = (
    df.pivot_table(
        index=['incident', 'unit_num'],
        columns='status',
        values='time',
        aggfunc=''.join)
    # .add_suffix('_time')
    .rename_axis(columns=None)
    .reset_index()
)

输出:

   incident    unit_num           available            dispatch  \
0       123  ambulance1  1/19/2019 09:24:59  1/19/2019 09:04:59   
1       123  ambulance2  1/19/2019 09:34:59  1/19/2019 09:04:59   

              enroute             onscene  
0  1/19/2019 09:06:59  1/19/2019 09:14:59  
1  1/19/2019 09:08:59  1/19/2019 09:13:59