gpt4 book ai didi

python - 将值传播到 pandas 数据框中的列(透视)传感器事件

转载 作者:行者123 更新时间:2023-12-01 08:49:57 25 4
gpt4 key购买 nike

我正在努力在 padas 中旋转一些传感器数据。

我想从这里来

source_df = pd.DataFrame({'time': [1,1,1,1,2,2,2,2],
'sensor_id': ['s1', 's1', 's2', 's2', 's1', 's1', 's2', 's2'],
'value_type': ['a', 'b', 'a', 'b','a', 'b','a', 'b',],
'value': [1,2,3,4,5,6,7,8]})


时间sensor_id value_type value
0 1 s1 a 1
1 1 s1 b 2
2 1 s2 3
3 1 s2 b 4
4 2 s1 5
5 2 s1 b 6
6 2 s2 7
7 2 s2 b 8

此表格

target_df = pd.DataFrame({'sensor_id': ['s1', 's2', 's1', 's2'],
'a': [1, 3, 5, 7],
'b': [2, 4, 6, 8],
'time': [1, 1, 2, 2]})
target_df


Sensor_id a b 时间
0秒1 1 2 1
1秒2 3 4 1
2秒1 5 6 2
3秒2 7 8 2

不知怎的,我希望pivot能够工作......只需:source_df.pivot(columns = 'value_type', values = 'value') - 但它不会创建所需的结果。

R中,它的工作原理很简单

enter image description here

但我真的不明白如何在 pandas 中获得相同的结果。

最佳答案

使用set_indexunstack :

df = (source_df.set_index(['sensor_id','time', 'value_type'])['value']
.unstack()
.reset_index()
.rename_axis(None, axis=1))
print (df)
sensor_id time a b
0 s1 1 1 2
1 s1 2 5 6
2 s2 1 3 4
3 s2 2 7 8

关于python - 将值传播到 pandas 数据框中的列(透视)传感器事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53171895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com