python - 如何将以下数据框转换为特定格式?
问题描述
我有以下格式的时间序列数据:
df.columns= ['Timestamp','Parameter','Value']
在这里,“参数”列每 5 分钟有一个重复字符,一旦参数更改,时间戳开始为另一个参数重复。一小部分数据如下所示:
{'Timestamp': {0: '2019-01-01 06:00:00+00:00',
1: '2019-01-01 06:05:00+00:00',
2: '2019-01-01 06:10:00+00:00',
3: '2019-01-01 06:15:00+00:00',
4: '2019-01-01 06:20:00+00:00',
5: '2019-01-01 06:25:00+00:00',
6: '2019-01-01 06:30:00+00:00',
7: '2019-01-01 06:00:00+00:00',
8: '2019-01-01 06:05:00+00:00',
9: '2019-01-01 06:10:00+00:00',
10: '2019-01-01 06:15:00+00:00',
11: '2019-01-01 06:20:00+00:00',
12: '2019-01-01 06:25:00+00:00',
13: '2019-01-01 06:30:00+00:00',
14: '2019-01-01 06:00:00+00:00',
15: '2019-01-01 06:05:00+00:00',
16: '2019-01-01 06:10:00+00:00',
17: '2019-01-01 06:15:00+00:00',
18: '2019-01-01 06:20:00+00:00',
19: '2019-01-01 06:25:00+00:00',
20: '2019-01-01 06:30:00+00:00',
21: '2019-01-01 06:00:00+00:00',
22: '2019-01-01 06:05:00+00:00',
23: '2019-01-01 06:10:00+00:00',
24: '2019-01-01 06:15:00+00:00',
25: '2019-01-01 06:20:00+00:00',
26: '2019-01-01 06:25:00+00:00',
27: '2019-01-01 06:30:00+00:00'},
'Parameter': {0: 'A',
1: 'A',
2: 'A',
3: 'A',
4: 'A',
5: 'A',
6: 'A',
7: 'B',
8: 'B',
9: 'B',
10: 'B',
11: 'B',
12: 'B',
13: 'B',
14: 'C',
15: 'C',
16: 'C',
17: 'C',
18: 'C',
19: 'C',
20: 'C',
21: 'D',
22: 'D',
23: 'D',
24: 'D',
25: 'D',
26: 'D',
27: 'D'},
'Value': {0: 1,
1: 2,
2: 3,
3: 4,
4: 5,
5: 6,
6: 7,
7: 3,
8: 4,
9: 1,
10: 2,
11: 5,
12: 8,
13: 9,
14: 2,
15: 4,
16: 5,
17: 5,
18: 3,
19: 4,
20: 9,
21: 1,
22: 4,
23: 7,
24: 2,
25: 2,
26: 3,
27: 1}}
我想更改以下格式的数据以应用我的算法:
df.columns=['Timestamp','A','B','C','D']
我手动准备了一个数据框来显示它的外观:
{'timestamp': {0: '2019-01-01 06:00:00+00:00',
1: '2019-01-01 06:05:00+00:00',
2: '2019-01-01 06:10:00+00:00',
3: '2019-01-01 06:15:00+00:00',
4: '2019-01-01 06:20:00+00:00',
5: '2019-01-01 06:25:00+00:00',
6: '2019-01-01 06:30:00+00:00'},
'A': {0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7},
'B': {0: 3, 1: 4, 2: 1, 3: 2, 4: 5, 5: 8, 6: 9},
'C': {0: 2, 1: 4, 2: 5, 3: 5, 4: 3, 5: 4, 6: 9},
'D': {0: 1, 1: 4, 2: 7, 3: 2, 4: 2, 5: 3, 6: 1}}
我该如何解决这个问题?
解决方案
利用:
df.pivot('Timestamp', 'Parameter', 'Value')
输出:
Parameter A B C D
Timestamp
2019-01-01 06:00:00+00:00 1 3 2 1
2019-01-01 06:05:00+00:00 2 4 4 4
2019-01-01 06:10:00+00:00 3 1 5 7
2019-01-01 06:15:00+00:00 4 2 5 2
2019-01-01 06:20:00+00:00 5 5 3 2
2019-01-01 06:25:00+00:00 6 8 4 3
2019-01-01 06:30:00+00:00 7 9 9 1
推荐阅读
- woocommerce - 装箱单中的 WooCommerce 运输状态
- directx - HLSL 修改像素深度而不跳过 z 剔除
- python-3.x - 删除具有特定条件的重复项
- tensorflow - 使用 tensorflow 的估计器 API 在 RNN 的每个时期中的权重矩阵和成本
- python - AttributeError:“顺序”对象在 Keras Theano 中没有属性“_feed_input_names”
- ios - 故事板中的标签没有采用正确的本地化值
- c# - MongoDB 通过 C# 查询一组嵌入式文档
- android - kotlin 中安全调用变量的 NPE。其背后的原因是什么以及如何解决?
- javascript - 在函数中反应未定义的 this
- python - 创建具有多个匹配项的新列