pandas中Groupby通过字典或Series进行分组

#-*- coding:utf-8 -*-
import pandas as pd
import numpy as np
people=pd.DataFrame(np.random.randn(5,5),columns=['a','b','c','d','e']
                    ,index=['Joe','Steve','Wes','Jim','Travis'])
people.ix[2:3,['b','c']]=np.nan#添加几个NA值
#假设已知列的分组关系,并希望根据分组计算列的总计:
mapping={'a':'red','b':'red','c':'blue','d':'blue','e':'red','f':'orange'}
by_column=people.groupby(mapping,axis=1)#只需要将mapping传给groupby即可
print by_column.sum()

#series也有同样的功能,它可以看做一个固定大小的映射。对于上面那个例子,如果用series作为分组键,则pandas
#会检查series以确保其索引跟分组轴是对齐的
map_series=pd.Series(mapping)
print people.groupby(map_series,axis=1).count()

你可能感兴趣的:(pandas,pandas应用)