• Pandas的排序和排名(Series, DataFrame) + groupby


    根据条件对数据集排序(sorting)也是一种重要的内置运算。要对行或列索引进行排序(按字典顺序), 

    可使用sort_index 方法, 它将返回一个已排序的新对象:

    而DataFrame, 则可以根据任意一个轴上的索引进行排序:

    降序

    数据默认是按照升序排序的, 但也可以安装降序排序

     

     按值排序

     

    如果有缺失值呢

     求唯一值排序和频率排序

     Dataframe指定某列的值进行排序,by选项

     

    那么如果多个呢?

    排名

    排名(ranking ) 跟排序关系密切, 且它会增设一个排名值(从1开始, 一直到数组中有效数据的数量)。

    它跟numpy.argsort产生的间接拍下索引差不多, 只不过它可以根据某种规则破坏平级关系。接下来介绍Series和Dataframe 的rank方法。

    默认情况下, rank是通过”为各组分配一个平均排名“的方式破坏平级关系的。

     降序

     

     

     

     groupby方法

    import pandas as pd
    df = pd.DataFrame({'性别' : ['', '', '', '',
                                  '', '', '', ''],
                           '成绩' : ['优秀', '优秀', '及格', '',
                                  '及格', '及格', '优秀', ''],
                           '年龄' : [15,14,15,12,13,14,15,16]})
    GroupBy=df.groupby("性别")

    GroupBy.iter() 


    GroupBy对象是一个迭代对象,每次迭代结果是一个元组,元组的第一个元素是该组的名称(就是groupby的列的元素名称),第二个元素是该组的具体信息,是一个数据框,索引是以前的数据框的总索引

    for name,group in GroupBy:
        print(name)
        print(group)
    女
       年龄 性别  成绩
    1  14  女  优秀
    3  12  女   差
    5  14  女  及格
    男
       年龄 性别  成绩
    0  15  男  优秀
    2  15  男  及格
    4  13  男  及格
    6  15  男  优秀
    7  16  男   差

    groupby还有其他子方法,需要的话自己在百度吧 

    来个例子, groupby + apply + sortValues的例子

    data.groupby('customer_id')['repayment_date'].apply(lambda x:x.sort_values(ascending=False)).reset_index()
  • 相关阅读:
    RocketMQ Message hasn't been sent. Caused by No route info of this topic, test-topic
    Barrier
    WPF之资源
    WPF之命令
    WPF之事件
    WPF之属性
    多路Binding
    Binding的数据转换
    Binding的数据校验
    为Binding指定源的方法
  • 原文地址:https://www.cnblogs.com/renfanzi/p/6420783.html
Copyright © 2020-2023  润新知