pandas.dataframe.groupby做量化知道这些就够了

DataFrame.groupby(by=None, axis=0, level=None, as_index= True, sort=True, group_keys=True, squeeze=False, observed=False, **kwargs)

# return                    DataFrameGroupBy or SeriesGroupBy

# as_index= True   默认用于分组的列被设置成,分组后再操作所得结果的index
  • 案例演示具体操作
df = pd.DataFrame({'Animal' : ['Falcon', 'Falcon','Parrot', 'Parrot'], 'Max Speed' : [380., 370., 24., 26.]})

df.groupby(by= ‘Animal’) 这个操作并不会真正改变df本身

df.groupby(‘Animal’).size() 对groupby之后每个组内进行操作,每个组内的数据行数

df.groupby(‘Animal’).get_group(‘Falcon’) 获取某一个分组

对list可用的函数都可以对df.groupby()操作,指的是对df.gruopby()之后的每一个分组进行操作

df.groupby(‘Animal’).describe()

df.groupby(‘Animal’).head() # 取每组数据的前5行

df.groupby(‘Animal’).tail()

df.groupby(‘Animal’).frist() # 取每组数据的第一行

df.groupby(‘Animal’).last()

df.groupby(‘Animal’).nth() # 取每组数据的指定某行

df.groupby(‘Animal’, as_index = False).nth() # 默认使用原来的index,不用’Animal’这一列作为index

groupby之后,也可以只取某几列进行操作

df.groupby(‘Animal’)[‘Falcon’].mean() 先完成groupby得到各组,再取各组内的[‘Falcon’]列,再对这一列求均值。

df.groupby(‘Animal’)[‘Falcon’].sum()

df.groupby(‘Animal’)[‘Falcon’].rank() 在组内排序

df.groupby(‘Animal’)[‘Falcon’].rank(pct= True) 排名的百分比

可以对一列分组,也可以对多列分组

df.loc[df[‘candle_begin_time’].dt.hour < 12, ‘时间’] = ‘上午’

df.groupby([‘symbol’, ‘时间’]).size() 先依据symbol分组,再在组内依据’时间’分组

对groupby后每个组进行遍历,遍历时对每一个group进行操作,操作完后再将group合并起来group.append()

for n, group in df.groupby():

​ print(n) 对应分组组名

​ print(group) 对应一个DataFrame

.
.
.
2019-03-12 22:09:36写于杭州

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值