gpt4 book ai didi

python - 按 Pandas 数据框中的多个时间单位分组

转载 作者:太空狗 更新时间:2023-10-29 19:35:27 24 4
gpt4 key购买 nike

我有一个数据框,其中包含间隔为 15 秒的时间序列数据:

date_time             value    
2012-12-28 11:11:00 103.2
2012-12-28 11:11:15 103.1
2012-12-28 11:11:30 103.4
2012-12-28 11:11:45 103.5
2012-12-28 11:12:00 103.3

数据跨越多年。我想按年份和时间分组,以查看多年来时间效应的分布。例如,我可能想计算几天内每 15 秒间隔的均值和标准差,并查看均值和标准差从 2010 年、2011 年、2012 年等开始的变化情况。我天真地尝试了 data.groupby (lambda x: [x.year, x.time]) 但它没有用。我怎样才能做这样的分组?

最佳答案

如果 date_time 不是您的索引,则可以创建一个 date_time 索引的 DataFrame:

dfts = df.set_index('date_time')

从那里你可以使用间隔分组

dfts.groupby(lambda x : x.month).mean()

查看每个月的平均值。同样,你可以这样做

dfts.groupby(lambda x : x.year).std()

多年来的标准偏差。

如果我理解您想要完成的示例任务,您可以使用 xs 简单地将数据拆分为年份,将它们分组并连接结果并将其存储在新的 DataFrame.

years = range(2012, 2015)
yearly_month_stats = [dfts.xs(str(year)).groupby(lambda x : x.month).mean() for year in years]
df2 = pd.concat(yearly_month_stats, axis=1, keys = years)

从中你得到类似的东西

        2012       2013       2014
value value value
1 NaN 5.324165 15.747767
2 NaN -23.193429 9.193217
3 NaN -14.144287 23.896030
4 NaN -21.877975 16.310195
5 NaN -3.079910 -6.093905
6 NaN -2.106847 -23.253183
7 NaN 10.644636 6.542562
8 NaN -9.763087 14.335956
9 NaN -3.529646 2.607973
10 NaN -18.633832 0.083575
11 NaN 10.297902 14.059286
12 33.95442 13.692435 22.293245

关于python - 按 Pandas 数据框中的多个时间单位分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14301004/

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