Python 数据透视表,具有重复索引,并且数据透视表中没有聚合函数
我有一个数据帧:Python 数据透视表,具有重复索引,并且数据透视表中没有聚合函数,python,pandas,Python,Pandas,我有一个数据帧: device_id timestamp metric_id value 0 device_1 2020-12-04 05:15:00 cpu_5min 116 1 device_1 2020-12-04 05:30:00 cpu_5min 213 2 device_1 2020-12-04 05:35:00 cpu_5min 427 3 device_1
device_id timestamp metric_id value
0 device_1 2020-12-04 05:15:00 cpu_5min 116
1 device_1 2020-12-04 05:30:00 cpu_5min 213
2 device_1 2020-12-04 05:35:00 cpu_5min 427
3 device_1 2020-12-04 05:15:00 vol_max 734
4 device_1 2020-12-04 05:30:00 vol_max 325
5 device_1 2020-12-04 05:35:00 vol_max 668
6 device_2 2020-12-04 05:15:00 cpu_5min 540
7 device_2 2020-12-04 05:30:00 cpu_5min 127
8 device_2 2020-12-04 05:35:00 cpu_5min 654
我需要将此表旋转为如下所示:
device_id timestamp cpu_5min vol_max
0 device_1 2020-12-04 05:15:00 116 734
1 device_1 2020-12-04 05:30:00 213 325
2 device_1 2020-12-04 05:35:00 427 668
3 device_2 2020-12-04 05:15:00 540 NA
4 device_2 2020-12-04 05:30:00 127 NA
5 device_2 2020-12-04 05:35:00 654 NA
因此,所有唯一的度量值都将作为新的头进行旋转,并带有各自的值。如果不存在任何值,则将NA放置在那里
我已经查看了其他pivot答案,但它们似乎都假设了聚合函数和/或非重复索引。请尝试
pd.pivot_table(df, index=['device_id','timestamp'], columns=['metric_id']).droplevel(0, axis=1).reset_index()
df.pivot([“设备id”、“时间戳”、“度量id”、“值”)
?或者df.pivot([“设备id”、“时间戳”]、“度量id”、“值”)。reset_index()。重命名_轴(columns=None)
pd.pivot_表(df,index=[“设备id”、“时间戳”],columns=[“度量id”)。液滴液位(0,轴=1)。reset_index()@wwnde有效。@controlnetic知道它会起作用。很高兴能帮上忙