• Pandas入门之十四:分组


    已信任
    Jupyter 服务器: 本地
    Python 3: Not Started
    [1]
    
    
    
    import pandas as pd
    import numpy as np
    
    
    
    [7]
    
    
    
    
    df = pd.DataFrame({
        'user':['小明','小黑','小黄','小李'],
        'gender':['','','',''],
        'score':[99,95,70,88]
    })
    df
    user    gender    score
    0    小明    男    99
    1    小黑    女    95
    2    小黄    女    70
    3    小李    男    88
    [8]
    
    
    
    df.groupby('gender')
    <pandas.core.groupby.generic.DataFrameGroupBy object at 0x0000029813AB8A90>
    [9]
    
    
    
    # .groups获取分组情况
    df.groupby('gender').groups
    {'': [1, 2], '': [0, 3]}
    [11]
    
    
    
    # 迭代
    grouped = df.groupby('gender')
    for name,group in grouped:
        print(name)
        print(group)
    女
      user gender  score
    1   小黑      女     95
    2   小黄      女     70
    男
      user gender  score
    0   小明      男     99
    3   小李      男     88
    [12]
    
    
    
    # 选择组
    grouped.get_group('')
    user    gender    score
    0    小明    男    99
    3    小李    男    88
    [22]
    
    
    
    # 选择组,聚合计算
    grouped.get_group('')['score'].agg(np.mean)
    93.5
    [15]
    
    
    
    # 选择组,聚合计算
    grouped.get_group('')['score'].agg(np.max)
    95
    [16]
    
    
    
    # 选择组,计算长度
    grouped.get_group('').agg(np.size)
    user      2
    gender    2
    score     2
    dtype: int64
    [17]
    
    
    
    df['star'] = pd.Series([5,7,4,3])
    df
    user    gender    score    star
    0    小明    男    99    5
    1    小黑    女    95    7
    2    小黄    女    70    4
    3    小李    男    88    3
    [18]
    
    
    
    grouped = df.groupby('gender')
    [19]
    
    
    
    grouped[['score','star']].agg({'score':np.mean,'star':np.sum})
    score    star
    gender        
    女    82.5    1193.5    8
    [23]
    
    
    
    df.groupby('gender').filter(lambda x:x['score'].mean()>90)
    user    gender    score    star
    0    小明    男    99    5
    3    小李    男    88    3
    [-]
  • 相关阅读:
    eclipse快捷键
    ideaIU-2017.3.2版本的免费安装以及2020版本破解
    并发相关问题以及java基础知识
    飞秋软件-局域网内互传
    视频解析网站
    bzoj2458: [BeiJing2011]最小三角形
    bzoj3170: [Tjoi2013]松鼠聚会
    bzoj5056:OI游戏
    dtoj#4224. 小L的占卜
    dtoj#4222. 小b爱旅行(travel)
  • 原文地址:https://www.cnblogs.com/vvzhang/p/15022160.html
Copyright © 2020-2023  润新知