亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Pandas如何使用GroupBy分組

發布時間:2021-11-30 10:08:47 來源:億速云 閱讀:188 作者:小新 欄目:云計算

這篇文章主要介紹 Pandas如何使用GroupBy分組,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

groupby對象

import pandas as pd
import numpy as np
df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar',                              'foo', 'bar', 'foo', 'foo'],                       'B' : ['one', 'one', 'two', 'three',                              'two', 'two', 'one', 'three'],                       'C' : np.random.randn(8),                       'D' : np.random.randn(8)})
gb.groupby('A')
print(df.groupby('A'))
<pandas.core.groupby.DataFrameGroupBy object at 0x00000000042F3470>
In [26]: gb.<TAB>
gb.agg        gb.boxplot    gb.cummin     gb.describe   gb.filter     gb.get_group  gb.height     gb.last       gb.median     gb.ngroups    gb.plot       gb.rank       gb.std        gb.transform
gb.aggregate  gb.count      gb.cumprod    gb.dtype      gb.first      gb.groups     gb.hist       gb.max        gb.min        gb.nth        gb.prod       gb.resample   gb.sum        gb.var
gb.apply      gb.cummax     gb.cumsum     gb.fillna     gb.gender     gb.head       gb.indices    gb.mean       gb.name       gb.ohlc       gb.quantile   gb.size       gb.tail       gb.weight

分組迭代Iterating through groups

In [41]: grouped = df.groupby('A')

In [42]: for name, group in grouped:
   ....:        print(name)
   ....:        print(group)
   ....: 
bar
     A      B         C         D1  bar    one -0.042379 -0.0893293  bar  three -0.009920 -0.9458675  bar    two  0.495767  1.956030foo
     A      B         C         D0  foo    one -0.919854 -1.1313452  foo    two  1.247642  0.3378634  foo    two  0.290213 -0.9321326  foo    one  0.362949  0.0175877  foo  three  1.548106 -0.016692

獲得一個分組get_group

In [44]: grouped.get_group('bar')Out[44]: 
     A      B         C         D1  bar    one -0.042379 -0.0893293  bar  three -0.009920 -0.9458675  bar    two  0.495767  1.956030

使用多種函數agg()

相同的函數

In [56]: grouped = df.groupby('A')In [57]: grouped['C'].agg([np.sum, np.mean, np.std])Out[57]: 
          sum      mean       stdA                                
bar  0.443469  0.147823  0.301765foo  2.529056  0.505811  0.966450

不同的函數

In [60]: grouped.agg({'C' : np.sum,
   ....:              'D' : lambda x: np.std(x, ddof=1)})
   ....: 
Out[60]: 
            C         D
A                      
bar  0.443469  1.490982foo  2.529056  0.645875

轉變數據框transformation

轉變函數(transform)中需要返回一個和分組塊(group chunk)同樣大小的結果,比如我們需要標準化每一個分組的數據:

In [66]: index = pd.date_range('10/1/1999', periods=1100)

In [67]: ts = pd.Series(np.random.normal(0.5, 2, 1100), index)

In [68]: ts = ts.rolling(window=100,min_periods=100).mean().dropna()
In [71]: key = lambda x: x.year#使用年來分組In [72]: zscore = lambda x: (x - x.mean()) / x.std()#標準化In [73]: transformed = ts.groupby(key).transform(zscore)#使用索引的年份來分組,然后標準化各組數據In [80]: compare = pd.DataFrame({'Original': ts, 'Transformed': transformed})# 做出圖形

Pandas如何使用GroupBy分組

過濾Filtration

filter方法返回一個子集(subset)。比如我們只想要組長度大于2的分組:

In [105]: dff = pd.DataFrame({'A': np.arange(8), 'B': list('aabbbbcc')})

In [106]: dff.groupby('B').filter(lambda x: len(x) > 2)
Out[106]: 
   A  B2  2  b3  3  b4  4  b5  5  b

靈活運用apply

In [123]: df
Out[123]: 
     A      B         C         D0  foo    one -0.919854 -1.1313451  bar    one -0.042379 -0.0893292  foo    two  1.247642  0.3378633  bar  three -0.009920 -0.9458674  foo    two  0.290213 -0.9321325  bar    two  0.495767  1.9560306  foo    one  0.362949  0.0175877  foo  three  1.548106 -0.016692In [124]: grouped = df.groupby('A')# could also just call .describe()In [125]: grouped['C'].apply(lambda x: x.describe())
Out[125]: 
A         
bar  count    3.000000 mean     0.147823 std      0.301765 min     -0.042379 25%     -0.026149 50%     -0.009920 75%      0.242924...   
foo  mean     0.505811 std      0.966450 min     -0.919854 25%      0.290213 50%      0.362949 75%      1.247642 max      1.548106Name: C, dtype: float64

以上是“ Pandas如何使用GroupBy分組”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泸溪县| 隆尧县| 永宁县| 阜阳市| 温泉县| 滁州市| 隆子县| 乌拉特后旗| 沅江市| 贵德县| 吉林省| 齐齐哈尔市| 冕宁县| 达拉特旗| 汶上县| 烟台市| 红河县| 扶风县| 海晏县| 侯马市| 鹿泉市| 英吉沙县| 丹凤县| 昂仁县| 夏邑县| 固镇县| 兴和县| 东乡族自治县| 南投县| 新郑市| 满城县| 射洪县| 辽源市| 上林县| 临城县| 株洲县| 彰化市| 吉林省| 龙井市| 财经| 墨玉县|