熊猫六个月重新采样 - 用户年龄/性别/播放数据

时间:2018-02-22 03:07:57

标签: python pandas dataframe data-visualization pandas-groupby

我正在尝试优化可视化效果,而这种可视化方式过于满足以下每年的年度数据。

以下是我usa_signup_age数据框的剪切:

          gender age
signup      
2002-10-29  m   31.0
2002-10-29  m   23.0
2002-10-29  m   23.0
2002-11-22  m   29.0
2002-11-28  m   25.0
2002-12-02  m   31.0
2003-02-06  m   29.0
2003-02-06  m   25.0
2003-02-06  m   25.0
2003-02-06  m   42.0

我的目标是以六个月的间隔计算男性与女性的平均年龄,以减少过度绘图。

usa_signup_age.groupby('gender')['age'].plot(legend=True)
plt.xlabel('years')
plt.ylabel('age by gender')
plt.title('total signup ages per gender per year')
plt.show()

'6M'方法有resample()参数吗?

1 个答案:

答案 0 :(得分:0)

您可以使用pd.Grouper()进行自定义分组,然后使用.apply()进行更多分组。这对于datetime对象非常方便。使用signuppd.to_datetime()变量转换为日期时间后,您可以执行以下操作:

usa_signup_age.groupby(pd.TimeGrouper(key="signup", freq="6M")).apply(lambda x: x.groupby('gender').mean())

这将返回:

                         age
signup     gender
2002-10-31 m       25.666667
2003-04-30 m       29.428571