数据清洗之 聚合函数使用

举报
ruochen 发表于 2021/03/28 01:09:27 2021/03/28
【摘要】 聚合函数使用 对分组对象使用agg聚合函数Groupby.agg(func)针对不同的变量使用不同的统计方法 import pandas as pd import numpy as np import os 123 os.getcwd() 1 'D:\\Jupyter\\notebook\\Python数据清洗实战\\数据清洗之数据统计' 1 os.chdir...

聚合函数使用

  • 对分组对象使用agg聚合函数
  • Groupby.agg(func)
  • 针对不同的变量使用不同的统计方法
import pandas as pd
import numpy as np
import os

  
 
  • 1
  • 2
  • 3
os.getcwd()

  
 
  • 1
'D:\\Jupyter\\notebook\\Python数据清洗实战\\数据清洗之数据统计'

  
 
  • 1
os.chdir('D:\\Jupyter\\notebook\\Python数据清洗实战\\数据')

  
 
  • 1
df = pd.read_csv('online_order.csv', encoding='gbk', dtype={'customer':str, 'order':str})

  
 
  • 1
grouped = df.groupby('weekday')

  
 
  • 1
grouped

  
 
  • 1
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x00000248E5285860>

  
 
  • 1
# agg可同时统计多个,更加灵活
grouped.agg([np.mean, np.max, np.min])

  
 
  • 1
  • 2
total_items discount% hour Food% ... Beauty% Health% Baby% Pets%
mean amax amin mean amax amin mean amax amin mean ... amin mean amax amin mean amax amin mean amax amin
weekday
1 30.662177 182 1 8.580705 100.0 -65.15 14.693122 23 0 22.690866 ... 0.0 1.152285 100.00 0.0 11.592562 100.0 0.0 1.007306 100.0 0.0
2 31.868612 282 1 8.638014 100.0 -23.89 14.966197 23 0 23.994915 ... 0.0 1.079423 100.00 0.0 11.277284 100.0 0.0 1.272638 100.0 0.0
3 31.869796 298 1 7.794507 100.0 -26.15 15.059898 23 0 24.309274 ... 0.0 1.156829 100.00 0.0 9.591389 100.0 0.0 0.937205 100.0 0.0
4 32.251899 221 1 8.068155 100.0 -17.24 14.324185 23 0 24.374364 ... 0.0 1.031490 100.00 0.0 9.058201 100.0 0.0 1.080473 100.0 0.0
5 31.406619 167 1 9.159031 100.0 -47.26 13.386919 23 0 24.602790 ... 0.0 1.248605 100.00 0.0 9.655343 100.0 0.0 0.908227 100.0 0.0
6 32.154814 190 1 8.414258 100.0 -39.84 14.751084 23 0 23.743196 ... 0.0 1.170585 81.77 0.0 11.478343 100.0 0.0 1.150980 100.0 0.0
7 32.373837 222 1 8.710171 100.0 -63.64 16.989535 23 0 22.271512 ... 0.0 1.145938 72.77 0.0 13.844250 100.0 0.0 0.950391 100.0 0.0

7 rows × 33 columns

# 同时计算total_items和总和 和 Food%的均值
grouped.agg({'total_items':np.sum, 'Food%':np.mean})

  
 
  • 1
  • 2
total_items Food%
weekday
1 191240 22.690866
2 158387 23.994915
3 150043 24.309274
4 131620 24.374364
5 79710 24.602790
6 74149 23.743196
7 167049 22.271512
grouped.agg({'total_items':np.sum, 'Food%':[np.mean, np.max]})

  
 
  • 1
total_items Food%
sum mean amax
weekday
1 191240 22.690866 100.0
2 158387 23.994915 100.0
3 150043 24.309274 100.0
4 131620 24.374364 100.0
5 79710 24.602790 100.0
6 74149 23.743196 100.0
7 167049 22.271512 100.0
df.columns

  
 
  • 1
Index(['customer', 'order', 'total_items', 'discount%', 'weekday', 'hour', 'Food%', 'Fresh%', 'Drinks%', 'Home%', 'Beauty%', 'Health%', 'Baby%', 'Pets%'], dtype='object')

  
 
  • 1
  • 2
  • 3
  • 4
# 直接使用 .sum()  只能计算一个统计量
df[['total_items', 'Food%', 'Drinks%']].sum()

  
 
  • 1
  • 2
total_items 952198.00
Food% 706812.19
Drinks% 700477.06
dtype: float64

  
 
  • 1
  • 2
  • 3
  • 4
# 使用 agg 可同时计算多个统计量
# 多个以列表形式传递
df[['total_items', 'Food%', 'Drinks%']].agg([np.sum, np.mean, np.max])

  
 
  • 1
  • 2
  • 3
total_items Food% Drinks%
sum 952198.000000 706812.190000 700477.060000
mean 31.739933 23.560406 23.349235
amax 298.000000 100.000000 100.000000

文章来源: ruochen.blog.csdn.net,作者:若尘,版权归原作者所有,如需转载,请联系作者。

原文链接:ruochen.blog.csdn.net/article/details/105589063

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。