Python 按国家/地区和设备分组的每月平均_订单
我想计算Python 按国家/地区和设备分组的每月平均_订单,python,pandas,Python,Pandas,我想计算 每月平均订单按设备和国家分组 平均每月订单数基于给定月份的平均每日订单数 主表 date country device count_orders 2019-01-01 UK phone 100 2019-01-02 UK tablet 200 2019-01-03 UK phone 200 2019-01-04 UK phone 300 2019-01-05 UK tabl
- 每月平均订单按设备和国家分组
- 平均每月订单数基于给定月份的平均每日订单数
date country device count_orders
2019-01-01 UK phone 100
2019-01-02 UK tablet 200
2019-01-03 UK phone 200
2019-01-04 UK phone 300
2019-01-05 UK tablet 400
2019-01-06 UK phone 400
2019-01-01 JP phone 200
2019-01-02 JP tablet 100
2019-01-03 JP phone 100
2019-01-04 JP phone 500
2019-01-05 JP tablet 300
2019-01-06 JP phone 300
输出表
month country device average_monthly_orders
January-19 UK phone 32
January-19 UK tablet 19
January-19 JP phone 35
January-19 JP tabet 13
根据您提供的数据:
df['date'] = pd.to_datetime(df['date'])
df['month'] = df['date'].dt.strftime('%B-%y')
df = df.groupby(by=['month', 'country', 'device'], as_index=False).mean().rename(columns={'count_orders': 'average_monthly_orders'})
print(df)
month country device count_orders
0 January-19 JP phone 275
1 January-19 JP tablet 200
2 January-19 UK phone 250
3 January-19 UK tablet 300
如果希望将每月平均订单存储在输出表中,则需要创建四个单独的每月平均订单变量,每组一个。然后,遍历所有数据,根据主表其他列中的信息,只对给定的月平均值作出贡献 使用,将
日期
列转换为熊猫日期时间序列,然后使用对月份
、国家
和设备
上的数据帧进行分组,现在使用总和
在分组的数据帧中聚合计数
。现在,使用将新数据框中的平均每月\u订单
列除以当月相应的天数,可使用以下方法获得:
一个月的平均值是多少32?是的,当然:)我想这可能更容易理解read@user12625679这回答了你的问题吗?谢谢@jezrael很高兴收到你的来信:)。
df['date'] = pd.to_datetime(df['date'])
df1 = (
df.groupby([df['date'].dt.strftime('%B-%y'), 'country', 'device'], sort=False)
.agg(average_monthly_orders=('count_orders', 'sum'))
.reset_index()
)
df1['average_monthly_orders'] = (
df1['average_monthly_orders'].floordiv(pd.to_datetime(
df1['date'], format='%B-%y').dt.daysinmonth)
)
# print(df1)
date country device average_monthly_orders
0 January-19 UK phone 32
1 January-19 UK tablet 19
2 January-19 JP phone 35
3 January-19 JP tablet 12