微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

熊猫:计算每“年”的总列值的标准差

如何解决熊猫:计算每“年”的总列值的标准差

我有一个数据框,代表餐厅的顾客签到(访问)。 year仅仅是在餐厅办理登机手续的年份。

  • 我想做的是在我的初始数据框std_checkin添加一列df,该列代表每年访问次数的标准差。因此,我需要计算每年总访问量的标准差。
data = {
        'restaurant_id':  ['--1UhMGODdWsrMastO9DZw','--1UhMGODdWsrMastO9DZw','--6MefnULPED_I942VcFNA','--6MefnULPED_I942VcFNA'],'year': ['2016','2016','2017','2011','2012','2012'],}
df = pd.DataFrame (data,columns = ['restaurant_id','year'])

# total number of checkins per restaurant
d = df.groupby('restaurant_id')['year'].count().to_dict()
df['nb_checkin'] = df['restaurant_id'].map(d)


grouped = df.groupby(["restaurant_id"])
avg_annual_visits = grouped["year"].count() / grouped["year"].nunique()
avg_annual_visits = avg_annual_visits.rename("avg_annual_visits")
df = df.merge(avg_annual_visits,left_on="restaurant_id",right_index=True)

df.head(10)

从这里,我不确定如何用熊猫写我想要的东西。如果需要任何澄清,请询问。

谢谢!

解决方法

我想你想做

counts = df.groupby('restaurant_id')['year'].value_counts()
counts.std(level='restaurant_id')

counts的输出,即每个餐厅每年的总访问量:

restaurant_id           year
--1UhMGODdWsrMastO9DZw  2016    4
                        2017    2
--6MefnULPED_I942VcFNA  2011    2
                        2012    2
Name: year,dtype: int64

并输出std

restaurant_id
--1UhMGODdWsrMastO9DZw    1.414214
--6MefnULPED_I942VcFNA    0.000000
Name: year,dtype: float64

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。