猿问

Pandas:计算每“年”数据框列值的平均值

我有一个代表顾客登记(访问)餐厅的数据框。year简直就是在餐厅办理入住的那一年。


average_checkin我想要做的是在我的初始数据框中添加一列df,表示每年餐厅的平均访问次数。

data = {

        'restaurant_id':  ['--1UhMGODdWsrMastO9DZw', '--1UhMGODdWsrMastO9DZw','--1UhMGODdWsrMastO9DZw','--1UhMGODdWsrMastO9DZw','--1UhMGODdWsrMastO9DZw','--1UhMGODdWsrMastO9DZw','--6MefnULPED_I942VcFNA','--6MefnULPED_I942VcFNA','--6MefnULPED_I942VcFNA','--6MefnULPED_I942VcFNA'],

        'year': ['2016','2016','2016','2016','2017','2017','2011','2011','2012','2012'],

        }

df = pd.DataFrame (data, columns = ['restaurant_id','year'])



# here i count the total number of checkins a restaurant had

d = df.groupby('restaurant_id')['year'].count().to_dict()

df['nb_checkin'] = df['restaurant_id'].map(d)



mean_checkin= df.groupby(['restaurant_id','year']).agg({'nb_checkin':[np.mean]})

mean_checkin.columns = ['mean_checkin']

mean_checkin.reset_index()


# the values in mean_checkin makes no sens


#I need to merge it with df to add that new column


我对 pandas 库还是个新手,我尝试过类似的方法,但我的结果毫无意义。我的语法有问题吗?如果需要任何澄清,请询问。


函数式编程
浏览 84回答 1
1回答

MMMHUHU

每年的平均访问次数可以通过餐厅的总访问次数除以您拥有数据的唯一年份数来计算。grouped = df.groupby(["restaurant_id"])avg_annual_visits = grouped["year"].count() / grouped["year"].nunique()avg_annual_visits = avg_annual_visits.rename("avg_annual_visits")print(avg_annual_visits)restaurant_id--1UhMGODdWsrMastO9DZw    3.0--6MefnULPED_I942VcFNA    2.0Name: avg_annual_visits, dtype: float64然后,如果您想将其合并回原始数据:df = df.merge(avg_annual_visits, left_on="restaurant_id", right_index=True)print(df)            restaurant_id  year  avg_annual_visits0  --1UhMGODdWsrMastO9DZw  2016                3.01  --1UhMGODdWsrMastO9DZw  2016                3.02  --1UhMGODdWsrMastO9DZw  2016                3.03  --1UhMGODdWsrMastO9DZw  2016                3.04  --1UhMGODdWsrMastO9DZw  2017                3.05  --1UhMGODdWsrMastO9DZw  2017                3.06  --6MefnULPED_I942VcFNA  2011                2.07  --6MefnULPED_I942VcFNA  2011                2.08  --6MefnULPED_I942VcFNA  2012                2.09  --6MefnULPED_I942VcFNA  2012                2.0
随时随地看视频慕课网APP

相关分类

Python
我要回答