pandas 如何在python中计算列 Dataframe 的平均值

myzjeezk  于 2023-02-17  发布在  Python
关注(0)|答案(1)|浏览(217)

我有这个 Dataframe ,我想计算每天的平均温度:

Dates       Temp
13     2019-08-02  24.5
20     2019-08-02  24.3
27     2019-08-03  24.1
34     2019-08-03  23.7
41     2019-08-04  23.6

我使用了这个代码,它对我来说似乎很好:

df.groupby('Dates', as_index=False)['Temp'].mean()

但最终的结果是这样的,这显然不是好的输出,因为我会有一年中每一天的平均温度:

Dates  Temp
0  2019-08-02  24.4
1  2019-08-03  23.9
2  2019-08-04  23.6

你知道吗?

k10s72fa

k10s72fa1#

如果数据具有相同年份,则将date_rangeSeries.reindex一起使用:

df['Dates'] = pd.to_datetime(df['Dates'])

y = df['Dates'].dt.year.min()
r = pd.date_range(f'{y}-01-01', f'{y}-12-31', name='Dates')
df1 = df.groupby('Dates')['Temp'].mean().reindex(r).reset_index()
print (df1)
         Dates  Temp
0   2019-01-01   NaN
1   2019-01-02   NaN
2   2019-01-03   NaN
3   2019-01-04   NaN
4   2019-01-05   NaN
..         ...   ...
360 2019-12-27   NaN
361 2019-12-28   NaN
362 2019-12-29   NaN
363 2019-12-30   NaN
364 2019-12-31   NaN

[365 rows x 2 columns]

如果是多年:

y1, y2 = df['Dates'].dt.year.min(), df['Dates'].dt.year.max()
r = pd.date_range(f'{y1}-01-01', f'{y2}-12-31')
df.groupby('Dates')['Temp'].mean().reindex(r).reset_index()

相关问题