gpt4 book ai didi

python - 如何在 Pandas 中对时间序列数据进行特征大小处理?

转载 作者:太空宇宙 更新时间:2023-11-03 16:19:49 25 4
gpt4 key购买 nike

我的数据结构如下:

Group, ID, Time, Feat1, Feat2, Feat3
A, 1, 0, 1.52, 2.94, 3.1
A, 1, 2, 1.67, 2.99, 3.3
A, 1, 4, 1.9, 3.34, 5.6

在这些数据中,有些人已经被重复测量过。

我想重组数据,使每个特征时间组合都是一个唯一的列,如下所示:

Group, ID, Feat1_Time0, Feat1_Time2, Feat1_Time4, Feat2_Time0, Feat2_Time2, Feat2_Time4, Feat3_Time0, Feat3_Time2, Feat3_Time4
A, 1, 1.52, 2.94, 3.1, 1.67, 2.99, 3.3, 1.9, 3.34, 5.6

有没有一种不使用 for 循环的简单方法来处理这个问题?我尝试过使用 for-loop 方法来完成我需要的任务,但它既不优雅又笨重,而且给定 104 列的真实数据,它也需要一段时间。

最佳答案

df = pd.DataFrame({'Group': {0: 'A', 1: 'A', 2: 'A', 3: 'A', 4: 'A', 5: 'A'},
'Time': {0: 0, 1: 2, 2: 4, 3: 0, 4: 2, 5: 4},
'ID': {0: 1, 1: 1, 2: 1, 3: 2, 4: 2, 5: 2},
'Feat1': {0: 1.52, 1: 1.6699999999999999, 2: 1.8999999999999999, 3: 1.52, 4: 1.6699999999999999, 5: 1.8999999999999999},
'Feat3': {0: 3.1000000000000001, 1: 3.2999999999999998, 2: 5.5999999999999996, 3: 3.1000000000000001, 4: 3.2999999999999998, 5: 5.5999999999999996},
'Feat2': {0: 2.9399999999999999, 1: 2.9900000000000002, 2: 3.3399999999999999, 3: 2.9399999999999999, 4: 2.9900000000000002, 5: 3.3399999999999999}})

df1 = df.set_index(['Group', 'ID', 'Time']).unstack()
df1

enter image description here

df1.columns = df1.columns.to_series().apply(pd.Series).astype(str).T.apply('_'.join)
df1.reset_index()

enter image description here

关于python - 如何在 Pandas 中对时间序列数据进行特征大小处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38594625/

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