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()

發佈了77 篇原創文章 · 獲贊 77 · 訪問量 34萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章