Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 数据透视表,具有重复索引,并且数据透视表中没有聚合函数_Python_Pandas - Fatal编程技术网

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知道它会起作用。很高兴能帮上忙