熊猫中的数据透视表可将指定列中的值“取消融合”为单独的列

问题描述

我有一个熊猫数据框:

timestamp   device_id   metric_name     metric_value
2020-10-20  6C0301      throughput      5.0
2020-10-21  6C0301      throughput      6.3
2020-10-20  6C0301      cache           4.7
2020-10-21  6C0301      cache           2.1
2020-10-20  6C0302      throughput      1.4
2020-10-21  6C0302      throughput      1.8
2020-10-22  6C0302      blocks          9.3
2020-10-23  6C0302      blocks          7.2

因此,不同的设备在不同的时间,每个设备都有自己的一组metric_names和metric_values。

我需要产生一个像这样的表:

timestamp   device_id   throughput   cache   blocks   
2020-10-20  6C0301      5.0          4.7     NULL
2020-10-21  6C0301      6.3          2.1     NULL
2020-10-20  6C0302      1.4          NULL    NULL
2020-10-21  6C0302      1.8          NULL    NULL
2020-10-22  6C0302      NULL         NULL    9.3
2020-10-23  6C0302      NULL         NULL    7.2

因此metric_name列中的值“未融合”到其自己的单独列中。

我正在看熊猫pivot_table,但它给了我错误的结果:

pd.pivot_table(df,values='metric_name',index=['timestamp','device_id'],columns=['metric_value'])

告诉我“ DataError:没有要聚合的数字类型”,即使metric_value列是float的,我也不希望聚合任何东西。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)