【问题标题】:Pandas groupby and calculate monthly mean but also have month values indicated in a separate column [duplicate]Pandas groupby 并计算月平均值,但在单独的列中显示月值[重复]
【发布时间】:2020-03-07 01:34:01
【问题描述】:

我有一组时间序列数据,我希望计算几年的月平均值。可以做到的,

df_monthly_mean = df_preErup.groupby('month')['values'].mean() 

这将给出 Pandas 核心系列的月平均值(12 个值对应于 1 月到 12 月)。但是有没有办法让另一列显示相应的月份(即 1 到 12)?

我尝试制作一个列表(1 到 12)并将其转换为熊猫系列并将两个系列连接起来。但是指数混淆了,每个月都没有正确对齐,导致 nan 值。

#list of month values
months_numbered = []
for i in range (1,13):
    months_numbered.append(i) 

#Convert to pandas series
months_no_series = pd.Series(months_numbered)

#Concat
df_preErup_MMean =pd.concat([months_no_series,df_monthly_mean],axis =1)

【问题讨论】:

标签: python pandas


【解决方案1】:

为什么不将groupby - mean 的结果直接分配给同一个数据框?

df_preErup['Monthly Mean'] = df_preErup.groupby('month')['values'].mean() 

【讨论】:

  • 这是可能的。但是放在同一张桌子上没有多大意义。由于我有大量数据(即 2010 年 1 月 1 日至 2019 年 8 月 31 日),但我期望的只有 12 个值对应于 12 个月,(即 2010 年至 2019 年 1 月的平均值,平均值2010 年 2 月至 2019 年 2 月的值......其他月份的值也如此)例如,日期数据集看起来像这样,01/01/2010, 02/01/2010,03/01/2010...。 ............,2010 年 8 月 25 日,...... 2006 年 2 月 22 日/2015,........ 2019 年 10 月 31 日。
猜你喜欢
  • 1970-01-01
  • 2015-12-10
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-18
相关资源
最近更新 更多