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
有必要将以下数据分解成一个数据透视表 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