数据清洗之 数据分组方法
数据分组方法
- 分组计算根据某个或某几个字段对数据集进行分组,然后运用特点的函数,得到结果
- 使用groupby方法进行分组计算,得到分组对象GroupBy
- 语法为df.groupby(by=)
- 分组对象GroupBy可以运用描述性统计方法,如count(计数)、mean(均值)、median(中位数)、max(最大值)和min(最小值)等
import pandas as pd
import numpy as np
import os
os.getcwd()
'D:\\Jupyter\\notebook\\Python数据清洗实战\\数据清洗之数据统计'
os.chdir('D:\\Jupyter\\notebook\\Python数据清洗实战\\数据')
df = pd.read_csv('online_order.csv', encoding='gbk', dtype={'customer':str, 'order':str})
df.head(5)
customer | order | total_items | discount% | weekday | hour | Food% | Fresh% | Drinks% | Home% | Beauty% | Health% | Baby% | Pets% | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 45 | 23.03 | 4 | 13 | 9.46 | 87.06 | 3.48 | 0.00 | 0.00 | 0.00 | 0.0 | 0.0 |
1 | 0 | 1 | 38 | 1.22 | 5 | 13 | 15.87 | 75.80 | 6.22 | 2.12 | 0.00 | 0.00 | 0.0 | 0.0 |
2 | 0 | 2 | 51 | 18.08 | 4 | 13 | 16.88 | 56.75 | 3.37 | 16.48 | 6.53 | 0.00 | 0.0 | 0.0 |
3 | 1 | 3 | 57 | 16.51 | 1 | 12 | 28.81 | 35.99 | 11.78 | 4.62 | 2.87 | 15.92 | 0.0 | 0.0 |
4 | 1 | 4 | 53 | 18.31 | 2 | 11 | 24.13 | 60.38 | 7.78 | 7.72 | 0.00 | 0.00 | 0.0 | 0.0 |
grouped = df.groupby('weekday')
type(grouped)
pandas.core.groupby.generic.DataFrameGroupBy
grouped.mean()
total_items | discount% | hour | Food% | Fresh% | Drinks% | Home% | Beauty% | Health% | Baby% | Pets% | |
---|---|---|---|---|---|---|---|---|---|---|---|
weekday | |||||||||||
1 | 30.662177 | 8.580705 | 14.693122 | 22.690866 | 20.000904 | 22.522993 | 13.932553 | 6.972394 | 1.152285 | 11.592562 | 1.007306 |
2 | 31.868612 | 8.638014 | 14.966197 | 23.994915 | 19.407738 | 24.346459 | 13.559191 | 4.903366 | 1.079423 | 11.277284 | 1.272638 |
3 | 31.869796 | 7.794507 | 15.059898 | 24.309274 | 19.957653 | 23.822470 | 13.282088 | 6.702640 | 1.156829 | 9.591389 | 0.937205 |
4 | 32.251899 | 8.068155 | 14.324185 | 24.374364 | 21.538027 | 24.553266 | 13.391946 | 4.806528 | 1.031490 | 9.058201 | 1.080473 |
5 | 31.406619 | 9.159031 | 13.386919 | 24.602790 | 20.549153 | 24.976466 | 12.485788 | 5.431221 | 1.248605 | 9.655343 | 0.908227 |
6 | 32.154814 | 8.414258 | 14.751084 | 23.743196 | 18.707788 | 23.593699 | 14.173291 | 5.878647 | 1.170585 | 11.478343 | 1.150980 |
7 | 32.373837 | 8.710171 | 16.989535 | 22.271512 | 21.020359 | 21.093767 | 13.632481 | 5.895322 | 1.145938 | 13.844250 | 0.950391 |
grouped.mean()['Food%']
weekday
1 22.690866
2 23.994915
3 24.309274
4 24.374364
5 24.602790
6 23.743196
7 22.271512
Name: Food%, dtype: float64
# 多个字段分组
grouped = df.groupby(by=['customer', 'weekday'])
grouped.sum()['total_items']
customer weekday
0 4 965 38
1 1 4232 1274 375 36
10 1 233 26
100 1 382 783 787 135
1000 2 6
10000 6 30
10001 6 15
10002 3 116 427 48
10003 2 4
10004 2 283 1314 93
10005 7 29
10006 2 205 277 26
10007 2 66 15
10008 7 123
10009 1 2...
9984 6 407 61
9985 6 11
9986 1 506 497 50
9987 1 23
9988 1 184 1
9989 1 27
999 1 1732 454 605 1377 149
9990 7 8
9991 6 46
9992 1 132 145 256 24
9993 6 8
9994 2 643 57
9995 7 14
9996 7 14
9997 6 5
9998 1 286 10
9999 6 4
Name: total_items, Length: 20777, dtype: int64
数据清洗之 数据分组方法相关推荐
- 16.数据统计之数据分组方法
数据分组运算: 分组计算根据某个或者某几个字段对数据集进行分组,然后运用特定的函数,得到结果. 使用groupby方法进行分组计算,得到分组对象GroupBy 语法为df.groupby(by=) 分 ...
- 数据库查询的数据分组方法
一.简介. 很多时候,我们进行数据库查询,并不需要清楚的知道每一条数据的全部信息.举个例子,我们想要知道仅仅是,某年每月产生至少两单的客户都有谁,但是,我们使用where语句进行查询的话,查询出来的数 ...
- pandas数据分组聚合——groupby()、aggregate()、apply()、transform()和filter()方法详解
数据分组 数据分组就是根据一个或多个键(可以是函数.数组或df列名)将数据分成若干组,然后对分组后的数据分别进行汇总计算,并将汇总计算后的结果进行合并,被用作汇总计算的函数称为聚合函数.数据分组的具体 ...
- python对数据分组的方法
pandas 的cut函数完成数据分组 cut(Series,bins,right = True,labels = null ) Series:需要分组的数据[数据框的某列数据] bins:分组的划分 ...
- python数据预处理 重复行统计_Python数据分析之数据预处理(数据清洗、数据合并、数据重塑、数据转换)学习笔记...
1. 数据清洗 1.1 空值和缺失值的处理 空值一般表示数据未知.不适用或将在以后添加数据.缺失值是指数据集中某个或某些属性的值是不完整的. 一般空值使用None表示,缺失值使用NaN表示 1.1 ...
- 数据挖掘中的数据预处理方法总结
1.原始数据存在的几个问题:不一致:重复:含噪声:维度高. 2.数据预处理包含数据清洗.数据集成.数据变换和数据归约几种方法. 3.数据挖掘中使用的数据的原则 应该是从原始数据中选取合适的属性作为数据 ...
- Python数据分析之数据预处理(数据清洗、数据合并、数据重塑、数据转换)学习笔记
文章目录 1. 数据清洗 1.1 空值和缺失值的处理 1.1.1 使用isnull()和notnull()函数 1.1.1.1 isnull()语法格式: 1.1.1.2 notnull()语法格式: ...
- 小白学 Python 数据分析(7):Pandas 数据分组
引言 各位同学好呀,我又出来了,本篇文章我们介绍下 Pandas 的数据分组. 本文用的数据集再次做更换,有同学在后台问小编为什么最近每篇文章都在换数据集. emmmmmmmm,在小白刚入门的时候,很 ...
- 【类库】私房干货.Net数据层方法的封装
[类库]私房干货.Net数据层方法的封装 作者:白宁超 时间:2016年3月5日22:51:47 摘要:继上篇<Oracle手边常用70则脚本知识汇总>文章的发表,引起很多朋友关注.便促使 ...
最新文章
- 共享程序集和强命名程序集(3):强命名程序集的一些作用
- 思科交换机和路由器的远程配置
- 破解IDEA2018的正确姿势
- python中 12_python编程中常用的12种基础知识总结
- Java访问对象的属性和行为
- HTTPS 跟 HTTP区别简述
- Python 3.10 明年发布,看看都有哪些 PEP ?
- 金蝶云星空之表单插件的开发
- php 商铺附近定位,php 地图标注百度地图添加商铺
- Linux 系统调用 fork wait exec
- “低碳生活,绿建未来”主题活动——微信运动步数打卡比赛统计分析
- Center Loss层
- Elasticsearch JestClient 使用
- 【Flink Rest-ful API 】
- 入门训练圆的面积_入门
- 【论文笔记】SeqSLAM、Fast-SeqSLAM 和 Bow、Incremental Bow、DBoW2、ORB-SLAM 论文阅读笔记
- php 点赞 代码,WordPress模板如何使用纯代码实现点赞功能?
- js实现语音播报+html自动播放音频
- 如何解决Oracle GoldenGate 没有主键的问题?
- BZOJ 5248: [2018多省省队联测]一双木棋(对抗搜索+记忆化)