python库学习笔记——分组计算利器:pandas中的groupby技术
生活随笔
收集整理的這篇文章主要介紹了
python库学习笔记——分组计算利器:pandas中的groupby技术
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
? ? ? ??最近處理數(shù)據(jù)需要分組計算,又用到了groupby函數(shù),溫故而知新。
? 分組運算的第一階段,pandas 對象(無論是 Series、DataFrame 還是其他的)中的數(shù)據(jù)會根據(jù)你所提供的一個或多個鍵被拆分(split)為多組。拆分操作是在對象的特定軸上執(zhí)行的。例如,DataFrame 可以在其行(axis=0)或列(axis=1)上進行分組。然后,將一個函數(shù)應(yīng)用到各個分組并產(chǎn)生一個新值。最后,所有這些函數(shù)的執(zhí)行結(jié)果會被合并到最終的結(jié)果對象中。結(jié)果對象的形式一般取決于數(shù)據(jù)上所執(zhí)行的操作。
舉例說明,生成隨機DataFrame數(shù)據(jù)
輸入
df = DataFrame({'key1':['a','a','b','b','a'],'key2':['one','two','one','two','one'],'data1':np.random.randn(5),'data2':np.random.randn(5)})輸出df
假設(shè)我們想要按 key1 進行分組,并計算 data1 列的平均值。
輸入
df['data1'].groupby(df['key1']).mean() or df.groupby('key1')['data1'].mean()輸出
key1 a 0.310092 b -0.785952 Name: data1, dtype: float64
輸入
df['data1'].groupby([df['key1'],df['key2']]).mean() or df.groupby(['key1','key2'])[['data1']].mean()輸出
key1 key2 a one -0.078753two 1.087782 b one -1.346429two -0.225475 Name: data1, dtype: float64
另外,我們可以對分組進行迭代,以多重鍵為例:
輸入
for name,group in df.groupby('key1'):print (name)print (group)輸出
adata1 data2 key1 key2 0 0.033971 0.066088 a one 1 1.087782 -0.095748 a two 4 -0.191477 -0.057805 a one bdata1 data2 key1 key2 2 -1.346429 0.648059 b one 3 -0.225475 1.440988 b two
轉(zhuǎn)載于:https://www.cnblogs.com/mtcnn/p/9411633.html
總結(jié)
以上是生活随笔為你收集整理的python库学习笔记——分组计算利器:pandas中的groupby技术的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 51nod 1525 重组公司
- 下一篇: opencv-python:win7下,