gpt4 book ai didi

python - Pandas:按时钟时间计算平均值和标准差

转载 作者:行者123 更新时间:2023-12-02 02:18:57 26 4
gpt4 key购买 nike

我有一个像这样的数据框:

        date             time         value
0 2019-04-18 07:00:10 100.8
1 2019-04-18 07:00:20 95.6
2 2019-04-18 07:00:30 87.6
3 2019-04-18 07:00:40 94.2

DataFrame 包含 2019 年全年每 10 秒记录一次的值。我需要计算每个日期每小时的标准差和 value 平均值,并为它们创建两个新列。我尝试首先分隔每个值的小时,例如:

df["hour"] = df["time"].astype(str).str[:2]

然后我尝试通过以下方式计算标准差:

df["std"] = df.groupby("hour").median().index.get_level_values('value').stack().std()

但这行不通,我可以就这个问题提供一些建议吗?

最佳答案

我们可以split time分隔符周围的列 : ,然后对 hour 进行切片组件使用 str[0] ,最后group date 上的数据框以及hour成分和聚合柱valuemeanstd :

hr = df['time'].str.split(':', n=1).str[0]
df.groupby(['date', hr])['value'].agg(['mean', 'std'])

如果你想broadcast将聚合值添加到原始数据帧,那么我们需要使用 transform而不是agg :

g = df.groupby(['date', df['time'].str.split(':', n=1).str[0]])['value']
df['mean'], df['std'] = g.transform('mean'), g.transform('std')

         date      time  value   mean       std
0 2019-04-18 07:00:10 100.8 94.55 5.434151
1 2019-04-18 07:00:20 95.6 94.55 5.434151
2 2019-04-18 07:00:30 87.6 94.55 5.434151
3 2019-04-18 07:00:40 94.2 94.55 5.434151

关于python - Pandas:按时钟时间计算平均值和标准差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66721047/

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