python pandas 分类求和

df1=base_data.groupby(['p_day','p_hour','platform','app_id','ct'])['cnt_view','cnt_click'].sum()

#对数据base_data的某些列分类,对某些列求和

python pandas 分类求和_第1张图片

求和后数据:

python pandas 分类求和_第2张图片

错误!!!

应该:

df2=base_data.groupby(['p_day','p_hour','platform','app_id','ct'])['cnt_view','cnt_click'].sum().reset_index()

python pandas 分类求和_第3张图片

引用如下内容:

dataframe里面给出了一个group by的一个操作,对于”group by”操作,我们通常是指以下一个或多个操作步骤:

l (Splitting)按照一些规则将数据分为不同的组;

l (Applying)对于每组数据分别执行一个函数;

l (Combining)将结果组合到一个数据结构中;

使用dataframe实现groupby的用法:

?
1
2
3
4
5
6
7
8
9
10
# -*- coding: UTF-8 -*-
import pandas as pd
df = pd.DataFrame([{'col1':'a', 'col2':1, 'col3':'aa'}, {'col1':'b', 'col2':2, 'col3':'bb'}, {'col1':'c', 'col2':3, 'col3':'cc'}, {'col1':'a', 'col2':44, 'col3':'aa'}])
print df
# 按col1分组并按col2求和
print df.groupby(by='col1').agg({'col2':sum}).reset_index()
# 按col1分组并按col2求最值
print df.groupby(by='col1').agg({'col2':['max', 'min']}).reset_index()
# 按col1 ,col3分组并按col2求和
print df.groupby(by=['col1', 'col3']).agg({'col2':sum}).reset_index()


你可能感兴趣的:(Python)