将一年重新采样为平均一天
Resample one year down to one average day
我有一年的数据,按小时计算。数据如下所示:
2020-01-01 01:00:00 3
2020-01-01 02:00:00 4
2020-01-01 03:00:00 2
2020-01-01 04:00:00 3
2020-01-01 05:00:00 6
2020-01-01 06:00:00 8
2020-01-01 07:00:00 5
2020-01-01 08:00:00 9
...
2020-12-31 20:00:00 8
2020-12-31 21:00:00 4
2020-12-31 22:00:00 7
2020-12-31 23:00:00 2
根据这些数据,我想确定一年中的平均天数。结果
01:00:00 --> 从 1 点开始的所有值的平均值
02:00:00 --> 从 2 点开始的所有值的平均值
...
新答案:
如果你想要每小时的平均值:
df['date'] = pd.to_datetime(df['date'])
df.groupby(df['date'].dt.hour)['value'].mean()
输出:
hour value
1 3
2 4
3 2
4 3
5 6
6 8
7 5
8 9
20 8
21 4
22 7
23 2
注意。输出与此处的输入相同,因为没有足够的数据来计算平均值
旧答案:
您的问题不是很清楚,我想您想要的是每天 的平均值。我进一步假设您有两列名为“日期”和“值”:
date value
0 2020-01-01 01:00:00 3
1 2020-01-01 02:00:00 4
2 2020-01-01 03:00:00 2
3 2020-01-01 04:00:00 3
4 2020-01-01 05:00:00 6
5 2020-01-01 06:00:00 8
6 2020-01-01 07:00:00 5
7 2020-01-01 08:00:00 9
8 2020-12-31 20:00:00 8
9 2020-12-31 21:00:00 4
10 2020-12-31 22:00:00 7
11 2020-12-31 23:00:00 2
可以转换成datetime
类型,用dt.floor
取日底值,groupby
取底值取均值:
df['date'] = pd.to_datetime(df['date'])
df.groupby(df['date'].dt.floor('d'))['value'].mean()
输出:
2020-01-01 5.00
2020-12-31 5.25
我有一年的数据,按小时计算。数据如下所示:
2020-01-01 01:00:00 3
2020-01-01 02:00:00 4
2020-01-01 03:00:00 2
2020-01-01 04:00:00 3
2020-01-01 05:00:00 6
2020-01-01 06:00:00 8
2020-01-01 07:00:00 5
2020-01-01 08:00:00 9
...
2020-12-31 20:00:00 8
2020-12-31 21:00:00 4
2020-12-31 22:00:00 7
2020-12-31 23:00:00 2
根据这些数据,我想确定一年中的平均天数。结果
01:00:00 --> 从 1 点开始的所有值的平均值
02:00:00 --> 从 2 点开始的所有值的平均值
...
新答案:
如果你想要每小时的平均值:
df['date'] = pd.to_datetime(df['date'])
df.groupby(df['date'].dt.hour)['value'].mean()
输出:
hour value
1 3
2 4
3 2
4 3
5 6
6 8
7 5
8 9
20 8
21 4
22 7
23 2
注意。输出与此处的输入相同,因为没有足够的数据来计算平均值
旧答案:
您的问题不是很清楚,我想您想要的是每天 的平均值。我进一步假设您有两列名为“日期”和“值”:
date value
0 2020-01-01 01:00:00 3
1 2020-01-01 02:00:00 4
2 2020-01-01 03:00:00 2
3 2020-01-01 04:00:00 3
4 2020-01-01 05:00:00 6
5 2020-01-01 06:00:00 8
6 2020-01-01 07:00:00 5
7 2020-01-01 08:00:00 9
8 2020-12-31 20:00:00 8
9 2020-12-31 21:00:00 4
10 2020-12-31 22:00:00 7
11 2020-12-31 23:00:00 2
可以转换成datetime
类型,用dt.floor
取日底值,groupby
取底值取均值:
df['date'] = pd.to_datetime(df['date'])
df.groupby(df['date'].dt.floor('d'))['value'].mean()
输出:
2020-01-01 5.00
2020-12-31 5.25