groupby用来将df按列名进行分组
data = np.array([1,2,3,4,5])
df = pd.DataFrame({
'L1': data,
'L2': data==2,
'L3':data/2
}, index=['a', 'b', 'c', 'd', 'e'])
print df
L1 L2 L3
a 1 False 0
b 2 True 1
c 3 False 1
d 4 False 2
e 5 False 2
按L2进行分组有
group_data = df.groupby('L2')
print group_data.groups
{False: Index([u'a', u'c', u'd', u'e'], dtype='object'), True: Index([u'b'], dtype='object')}
对分组进行求和和求平均运算
print group_data.sum()
print group_data.mean()
L1 L3
L2
False 13 5
True 2 1
L1 L3
L2
False 3.25 1.25
True 2.00 1.00
获取求和后的某列
print group_data.sum()['L3']
L2
False 5
True 1
Name: L3, dtype: int32