三、變換和過濾
四、跨列分組
總結
df.groupby(分組依據)
[資料**]
.使用操作
可以是列名,條件
列名的話:會根據列名中的種類進行劃分,這樣用時,列中的非重複資料較少
條件:需要時將列中根據條件進行分類後,再使用
傳入列名只是一種簡便的記號,事實上等價於傳入的是乙個或多個列,最後分組的依據來自於資料**組合的unique值,通過drop_duplicates
就能知道具體的組類別
在介紹agg之前,首先要了解一些直接定義在groupby物件的聚合函式,因為它的速度基本都會經過內部的優化,使用功能時應當優先考慮。根據返回標量值的原則,包括如下函式:max/min/mean/median/count/all/any/idxmax/idxmin/mad/nunique/skew/quantile/sum/std/var/sem/size/prod
1.使用多個函式
gb.agg(
['sum'
,'idxmax'
,'skew'
])
2.對特定的列使用特定的聚會函式
gb.agg(
)
3.使用自定義函式
在 agg 中可以使用具體的自定義函式, 需要注意傳入函式的引數是之前資料來源中的列,逐列進行計算
gb.agg(
lambda x: x.mean(
)-x.
min(
))
4.聚合結果重新命名
gb.agg([(
'range'
,lambda x: x.
max(
)-x.
min())
,('my_sum'
,'sum')]
)
1.變換函式與transform方法
變換函式的返回值為同長度的序列,最常用的內建變換函式是累計函式:cumcount/cumsum/cumprod/cummax/cummin
,它們的使用方式和聚合函式類似,只不過完成的是組內累計操作
當用自定義變換時需要使用transform
方法,被呼叫的自定義函式, 其傳入值為資料來源的序列 ,與agg
的傳入型別是一致的,其最後的返回結果是行列索引與資料來源一致的dataframe
2. 組索引與過濾
過濾在分組中是對於組的過濾,而索引是對於行的過濾
組過濾作為行過濾的推廣,指的是如果對乙個組的全體所在行進行統計的結果返回 true 則會被保留, false 則該組會被過濾,最後把所有未被過濾的組其對應的所在行拼接起來作為 dataframe 返回。
在groupby
物件中,定義了filter
方法進行組的篩選,其中自定義函式的輸入引數為資料來源構成的 dataframe 本身
加油,堅持就是勝利,考試加油!
學習第五天
清楚測試用例是什麼 測試用例的重要性 有效性 測試用例是測試人員測試過程中的重要參考依據,準確的測試用例的計畫 執行和跟蹤是 測試的有效性的有力證明 可復用性 設計良好的測試用例可以重複執行,能節約時間,提高測試效率 易組織性 清晰詳細的測試用例能夠便於測試執行的開展 可評估性 測試用例的通過率是檢...
Java學習第五天
當類載入器需要載入某個類時,類載入器會在載入初始化後生成該類的乙個類物件 class 用於描述該類的元資料資訊等。在其後的連線過程中,會初始化該類的靜態成員 變數或靜態初始化器 靜態初始化變數和初始化器按照先後順序執行初始化。例如 static int a 10 static 這樣初始化後a 100...
C 學習第五天
c 中的is和as is可用於任何型別。例如 int a 10 a is object true object o 10 o is int true o person o is int false as右側型別必須為引用型別或可空型別。as操作如果失敗,不丟擲異常,而是返回null 結構 struc...