arrays - 按日期分隔数据框并计算平均值 Numpy Python
问题描述
和数组相互关联,所以数据data_list
点。下面的函数显示了发生新年的索引。我正在尝试编写一个函数来显示给定年份内所有月度值的平均值。因此,由于 2019 年有 4 个月,因此需要将数字的总和除以 2019 年的月数,即 4,结果为。我怎么能编写这样的代码?monthly_values
'2019-09-01 00:00:00'= 15 , 2019-10-01 00:00:00'= 39.6... etc
year_changes
2019-09-01 00:00:00 - 2020-01-01 00:00:00
15., 39.6, 0.2, 34.3
Expected Output
22.28
import datetime
import numpy as np
import pandas as pd
from pandas import DataFrame
date_list = ['2019-09-01 00:00:00', '2019-10-01 00:00:00', '2019-11-01 00:00:00',
'2019-12-01 00:00:00', '2020-01-01 00:00:00', '2020-02-01 00:00:00',
'2020-03-01 00:00:00', '2020-04-01 00:00:00', '2020-05-01 00:00:00',
'2020-06-01 00:00:00', '2020-07-01 00:00:00', '2020-08-01 00:00:00',
'2020-09-01 00:00:00','2020-10-01 00:00:00', '2020-11-01 00:00:00',
'2020-12-01 00:00:00','2021-01-01 00:00:00','2021-02-01 00:00:00', '2021-03-01 00:00:00',
'2021-04-01 00:00:00','2021-05-01 00:00:00', '2021-06-01 00:00:00',
'2021-07-01 00:00:00']
monthly_values = np.array([ 15., 39.6, 0.2, 34.3, 19.6, 26.8, 15.7, 26., 12.6, 15.5, 18.6, 2.3, 6.5,
2.5, 12.2, 11.6, 93.9, 25.5, 26.5, -16.5, -1.4, -1.8, 5.])
data = DataFrame (date_list,columns=['Data'])
datetime = pd.to_datetime(data['Data'])
year_changes = data.loc[np.where(datetime.dt.year.diff().gt(0))].index.tolist()
预期产出年值:
2019 Average: 22.28
2020 Average: 14.16
2021 Avreage: 21.03
解决方案
date_list
您可以从和创建数据框monthly_values
:
data = pd.DataFrame({"Date": date_list, "Values": monthly_values})
data["Date"] = pd.to_datetime(data["Date"])
印刷:
Date Values
0 2019-09-01 15.0
1 2019-10-01 39.6
2 2019-11-01 0.2
3 2019-12-01 34.3
4 2020-01-01 19.6
5 2020-02-01 26.8
6 2020-03-01 15.7
7 2020-04-01 26.0
8 2020-05-01 12.6
9 2020-06-01 15.5
10 2020-07-01 18.6
11 2020-08-01 2.3
12 2020-09-01 6.5
13 2020-10-01 2.5
14 2020-11-01 12.2
15 2020-12-01 11.6
16 2021-01-01 93.9
17 2021-02-01 25.5
18 2021-03-01 26.5
19 2021-04-01 -16.5
20 2021-05-01 -1.4
21 2021-06-01 -1.8
22 2021-07-01 5.0
- 然后使用
.groupby
with.dt.year
作为石斑鱼:
print(data.groupby(data["Date"].dt.year).mean())
印刷:
Values
Date
2019 22.275000
2020 14.158333
2021 18.742857
推荐阅读
- excel - AdvancedFilter 在 Excel VBA 中排除多个条件
- postgresql - CALL 执行事务控制语句
- php - 在 laravel 中创建数据表时出现错误
- php - 传递给 PHP WordPress body_class 的 URL 参数值
- java - 反序列化可以包含多种类型的数组
- struct - 在 Rust 中将结构作为参数传递
- ios - 如何改进我的 cellForRowAt 功能?
- javascript - ReactDOM.render(Array, DivContext) 只工作一次
- influxdb - 是否可以在一个单元格中创建多个查询的总和?
- unity3d - Unity Oculus webGL 未运行