Pandas数据分析—groupby分组统计
13.Pandas中groupby分组统计
⽂章⽬录
前⾔
笔者最近正在学习Pandas数据分析,将⾃⼰的学习笔记做成⼀套系列⽂章。本节主要记录Pandas中groupby的使⽤(类似sql数据库中的groupby)
类似SQL:
select city,max(temperature) from city_weather group by city;
group:先对数据分组,然后再在每个分组上应⽤聚合函数、转换函数
本次演⽰:
1. 分组使⽤聚合函数做数据统计
2. 遍历groupby的结果理解执⾏的流程
3. 实例分组探索天⽓数据
⼀、分组使⽤聚合函数做数据统计
1.准备数据
import pandas as pd
import numpy as np
#加上这句,就可以在jupyter notebook展⽰matplot图表
%matplotlib inline
df=pd.DataFrame(
{'A':['foo','bar','foo','bar','foo','bar','foo','foo'],
'B':['one','one','two','three','two','two','one','three'],
'C':np.random.randn(8),
'D':np.random.randn(8)
}
)
df
#1. 单个列groupby,查询所有数据列的统计
#我们容易看到:
#groupby中的'A'变成了数据的索引列
#因为要统计sum,但是B列不是数字,所以要被⾃动忽略掉df.groupby('A').sum()
#2. 多个列groupby,查询所有数据列的统计
# 我们容易看到: ('A','B')成对变成了⼆级索引
groupby分组#3.同时查看多种统计数据
#我们看到列就成为了多级的索引
#4.查看单列的结果数据统计
#⽅法1:预过滤,性能更好
#⽅法2
#5.不同列使⽤不同的聚合函数
⼆、遍历groupby的结果理解执⾏流程
#for循环可以直接遍历每个group
#1.遍历单个列聚合的分组
upby('A')
g
for name,group in g:
print(name)
print(group)
print()
#可以获得单个分组的数据
<_group('bar')
#2.遍历多个列聚合的分组
upby(['A','B'])
for name,group in g:
print(name)
print(group)
print()
#可以看到name是⼀个2个元素的tuple,代表不同的列
<_group(('foo','one'))
#可以直接查询group后的某⼏列,⽣成Series或者⼦DataFrame g['C']
for name,group in g['C']:
print(name)
print(group)
print(type(group))
print()
#其实所有的聚合统计,都是在dataframe和series上进⾏的
三、实例分组股票数据
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论