日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pandas 根据列名索引多列数据_Pandas 数据聚合与分组运算[groupby+apply]速查笔记

發布時間:2023/12/1 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pandas 根据列名索引多列数据_Pandas 数据聚合与分组运算[groupby+apply]速查笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

利用Pandas將數據進行分組,并將各組進行聚合或自定義函數處理。

Pandas中Groupby分組與聚合過程

導入模塊

import pandas as pd

縮寫

df表示Dataframe對象

分組

  • df.groupby('col1'): 根據col1列將df全部列分組(默認:axis=0行)
  • df['col2'].groupby('col1'): 根據col1列對df中col2列分組
    • =df['col2'].groupby(df['col1'])
    • =df.groupby('col1')[['col2']]
    • =df.groupby('col1')['col2']
  • df.groupby(['col1','col2']): 根據col1,col2列將df分組
  • dict(list(df.groupby('col1'))): 將分組存為key為組名,value為group的字典
  • for name,group in df.groupby('col1'): 遍歷分組名+組
  • for (n1,n2),group in df.groupby(['col1','col2']): 遍歷取層級分組名+組
  • df.groupby(df.types, axis=1): 根據數據類型對df列分組
  • df.groupby(dict/list,axis=1):以字典或列表對df各列分組
    • dict中key為列名,value為分類標簽,根據分類標簽將列分類
  • df.groupby(len):計算df索引值的字符串長度,以長度值為分組及組名
  • df.groupby([len,list]):混和使用,層次化索引(0層:len,1層,list)
  • df.groupby(level='num',axis=1):層次化索引df中,以索引層名為num的列分組
  • groupby(group_keys=False): 分組列不成為索引
    • =reset_index()

聚合

>>>grouped = df.groupby('col1')

  • grouped.mean() :分組計算均值
    • grouped.agg('mean'):同上
  • grouped.size():分組大小
  • grouped.count():分組中非NA的數量
  • grouped.median():分組中位數
  • grouped.std():分組無偏標準差(分母n-1)
  • grouped.var():分組無偏方差
  • grouped.min():非NA最小值
  • grouped.max():非NA最大值
  • grouped.prod():非NA值的積
  • grouped.first():第一個非NA值
  • grouped.last():最后一個非NA值
  • grouped('col2').quantile(0.5):以col2列的0.5分位數聚合

自定義函數

  • grouped.agg(func):以自定義的func函數聚合
    • func 是以sereis為基礎的操作
    • 默認聚合后的列名為func名
      • grouped.agg([(name,func)]):指定列名,不用func名
    • =grouped.aggregate(func)
  • grouped[col].agg([func1,‘mean','std',...,funcn]): 對分組列col使用多個聚合函數
  • grouped[col1,col2].agg([func1,funcn]): 分組后的多列使用多個聚合函數
  • grouped.agg({col:func1,col2:func2}): 對col1列用func1聚合,col2列用func2聚合

分組級運算

本質:將一維數組簡化為標量值的函數

  • grouped.transform(func): 將聚合的標量值廣播
  • grouped.apply(func,param1,param2....): 對各個分組列使用func函數,param是func的參數
  • groupby + pd.cut : 將數據分為等距區間分組
  • groupby + pd.qcut: 將數據根據分位數區間分組

透視表與交叉表

  • df.pivot_table() : 透視表
    • rows:行索引
    • cols:列索引
    • margins:總計行列數據,默認平均值
    • fill_value:填補缺失值
  • pd.crosstab(df.col1,df.col2) : 交叉表計算分組頻率的特殊透視表

總結

以上是生活随笔為你收集整理的pandas 根据列名索引多列数据_Pandas 数据聚合与分组运算[groupby+apply]速查笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。