gpt4 book ai didi

python - 拆分列名并根据列名中的数据创建新列

转载 作者:太空宇宙 更新时间:2023-11-03 13:56:09 30 4
gpt4 key购买 nike

我在 pandas 数据框中有传感器数据,如下所示:

Timestamp           1014.temperature    1014.humidity   1015.temperature    1015.humidity   1016.temperature    1016.humidity
2017-10-01 00:00:00 11.396667 92.440806 10.513333 92.204295 11.040000 92.959605

SensorID 由每列中点之前的 4 位数字给出。 Timestamp 索引数据。数据继续用于多个时间戳和 SensorID。

我能做些什么来检索每一列中的 SensorID 以创建一个新列,以便我的数据框看起来像:

Timestamp            SensorID Temperature   Humidity
2017-10-01 00:00:00 1014 11.396667 92.440806
2017-10-01 00:00:00 1015 10.513333 92.204295
2017-10-01 00:00:00 1016 11.040000 92.959605

谢谢。

最佳答案

第一个str.split对于列中的 MultiIndex 并按 DataFrame.stack reshape 第一层,最后一层 DataFrame.reset_index使用重命名:

#if Timestamp is column
#df = df.set_index('Timestamp')

df.columns = df.columns.str.split('.', expand=True)
df = df.stack(level=0).reset_index().rename(columns={'level_1':'SensorID'})
print (df)
Timestamp SensorID humidity temperature
0 2017-10-01 00:00:00 1014 92.440806 11.396667
1 2017-10-01 00:00:00 1015 92.204295 10.513333
2 2017-10-01 00:00:00 1016 92.959605 11.040000

关于python - 拆分列名并根据列名中的数据创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55195077/

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