精华内容
下载资源
问答
  • pandas分组后排序问题

    千次阅读 2019-08-10 01:01:06
    先进行整体的sort_values,再进行grouby https://blog.csdn.net/guofei_fly/article/details/93844612

    先进行整体的sort_values,再进行grouby

    https://blog.csdn.net/guofei_fly/article/details/93844612

    展开全文
  • 下面小编就为大家分享一篇pandas多级分组实现排序的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Pandas分组排序

    千次阅读 2019-01-11 15:21:17
    一、pandas分组 1、分组运算过程:split->apply->combine 拆分:进行分组的根据 应用:每个分组运行的计算规则 合并:把每个分组的计算结果合并起来 2、分组函数 DataFrame.group...

    一、pandas分组

    1、分组运算过程:split->apply->combine

    • 拆分:进行分组的根据

    • 应用:每个分组运行的计算规则

    • 合并:把每个分组的计算结果合并起来

    2、分组函数

    DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, **kwargs
    
    by: 依据哪些列进行分组,值可以是:mapping, function, label, or list of labels
    

    3、聚合函数

    4、分组聚合实例

    • 单列分组
    >>> import pandas as pd
    >>> df = pd.DataFrame({'A': ['a', 'b', 'a', 'c', 'a', 'c', 'b', 'c'], 'B': [2, 8, 1, 4,
    3, 2, 5, 9], 'C': [102, 98, 107, 104, 115, 87, 92, 123], 'D': [2, 98, 17, 14, 15, 7, 92,
     13]})
    >>> df
       A  B    C   D
    0  a  2  102   2
    1  b  8   98  98
    2  a  1  107  17
    3  c  4  104  14
    4  a  3  115  15
    5  c  2   87   7
    6  b  5   92  92
    7  c  9  123  13
    >>> df.groupby(by='A').sum()
        B    C    D
    A
    a   6  324   34
    b  13  190  190
    c  15  314   34
    
    • 多列分组
    >>> df.groupby(by=['A','B']).sum()             ###A,B成索引
           C   D
    A B
    a 1  107  17
      2  102   2
      3  115  15
    b 5   92  92
      8   98  98
    c 2   87   7
      4  104  14
      9  123  13
    
    • 多列聚合
    >>> df.groupby(by=['A','B'])['C'].sum()      ###1个列
    A  B
    a  1    107
       2    102
       3    115
    b  5     92
       8     98
    c  2     87
       4    104
       9    123
    
    >>> df.groupby(by=['A','B'])['C','D'].sum()   ###2个列
           C   D
    A B
    a 1  107  17
      2  102   2
      3  115  15
    b 5   92  92
      8   98  98
    c 2   87   7
      4  104  14
      9  123  13
    
    • 多列不同聚合方式
    >>> import numpy as np
    >>> df.groupby(by=['A']).agg({'C':[np.mean, 'sum'], 'D':['count',np.std]})
                C          D
             mean  sum count       std
    A
    a  108.000000  324     3  8.144528
    b   95.000000  190     2  4.242641
    c  104.666667  314     3  3.785939
    
    
    >>>ps: 不同列使用多个不同函数进行聚合C: mean,sum;D:count,std
    • 返回值类型区别
    方法1:agg
    >>> df.groupby(by=['A']).agg({'C':[np.mean]})
                C
             mean
    A
    a  108.000000
    b   95.000000
    c  104.666667
    >>> type(df.groupby(by=['A']).agg({'C':[np.mean]}))
    <class 'pandas.core.frame.DataFrame'>
    
    
    方法2:索引
    >>> df.groupby(by=['A'])['C'].mean()
    A
    a    108.000000
    b     95.000000
    c    104.666667
    Name: C, dtype: float64
    >>> type(df.groupby(by=['A'])['C'].mean())
    <class 'pandas.core.series.Series'>
    
    
    
    总结: 两种方法结果一样,但是一个类型是DataFrame,一个为Series;有时候会用上

    二、pandas排序

    • 按索引进行降序排列
    >>> df
       A  B    C   D
    0  a  2  102   2
    1  b  8   98  98
    2  a  1  107  17
    3  c  4  104  14
    4  a  3  115  15
    5  c  2   87   7
    6  b  5   92  92
    7  c  9  123  13
    >>> df.sort_index(ascending=False)       ### 索引
       A  B    C   D
    7  c  9  123  13
    6  b  5   92  92
    5  c  2   87   7
    4  a  3  115  15
    3  c  4  104  14
    2  a  1  107  17
    1  b  8   98  98
    0  a  2  102   2
    

     

    • 按值进行降序排列
    >>> df.sort_values(by="A",ascending=False)        # 按某一列
       A  B    C   D
    3  c  4  104  14
    5  c  2   87   7
    7  c  9  123  13
    1  b  8   98  98
    6  b  5   92  92
    0  a  2  102   2
    2  a  1  107  17
    4  a  3  115  15
    
    >>> df.sort_values(by=["B","A"],ascending=False)   # 按2列
       A  B    C   D
    7  c  9  123  13
    1  b  8   98  98
    6  b  5   92  92
    3  c  4  104  14
    4  a  3  115  15
    5  c  2   87   7
    0  a  2  102   2
    2  a  1  107  17
    
    
    
    
    

     

    展开全文
  • 主要介绍了Pandas分组排序的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • pandas分组排序功能

    千次阅读 2019-03-28 10:30:30
    在一个班级里,学生考试科目有语文、数学...import pandas as pd a=['小红','小绿','小蓝','小白','小青','小紫','小粉','小傻','小红','小绿','小蓝','小白','小青','小紫','小粉','小傻','小红','小绿','小蓝','...

    在一个班级里,学生考试科目有语文、数学、英语,分别有对应的成绩。现在,想要列出每个科目班级的前五名的情况,要求包含科目、姓名、成绩、名次。
    通过以下代码实现:

    import pandas as pd
    
    a=['小红','小绿','小蓝','小白','小青','小紫','小粉','小傻','小红','小绿','小蓝','小白','小青','小紫','小粉','小傻','小红','小绿','小蓝','小白','小青','小紫','小粉','小傻']
    b=['语文','语文','语文','语文','语文','语文','语文','语文','数学','数学','数学','数学','数学','数学','数学','数学','英语','英语','英语','英语','英语','英语','英语','英语']
    c=[97,65,23,43,67,23,55,98,56,45,67,78,98,45,87,65,67,23,55,98,56,45,67,78]
    len(a),len(b),len(c)
    
    df=pd.DataFrame({'name':a,'kemu':b,'score':c})
    
    df2=df.sort_values(['kemu','score','name'], ascending=[1, 0,1])
    
    df2['rn']=df2.groupby(['kemu']).rank(method='first',ascending =0)['score']
    
    df2[df2['rn']<=5]
    ''''
    
    展开全文
  • 每日有多条信息,即 updateTime 栏每天有多条,现需要按照国家、日期分组,只保留最后更新的一条数据。 2、代码 import pandas as pd data = pd.read_csv('test.csv',header = 0) df = pd.DataFrame(data) df ...

    1、问题背景

    每日有多条信息,即 updateTime 栏每天有多条,现需要按照国家、日期分组,只保留最后更新的一条数据。

    2、代码

    import pandas as pd
    
    data = pd.read_csv('test.csv',header = 0)
    df = pd.DataFrame(data)
    df = df.sort_values('updateTime', ascending=False).groupby(['countryName','date']).first().reset_index()
    

    以上,问题解决~

    展开全文
  • pandas多级分组如何排序

    万次阅读 2017-08-10 14:56:29
    pandas有groupby分组函数和sort_values排序函数,但是如何对dataframe分组之后排序呢?
  • pandas分组groupby并排序

    千次阅读 2019-12-31 09:16:15
    比如 hour_count的列名为—— hour_count.columns  Index(['hour', 'event_label', 'count'], dtype='object' ...tt = hour_count.groupby("hour")....则可以让tt按照hour分组后,按照count排序    
  • pandas实现分组排序

    千次阅读 2019-04-10 19:10:29
    import pandas as pd df = pd.DataFrame([['A',1,'2019-03-01 00:00:30'], ['A',3,'2019-04-01 00:00:30'], ['A',2,'2019-03-01 00:00:30'], ['B',5,'2019-...
  • 一、pandas分组* 1、分组运算过程:split->apply->combine 拆分:进行分组的根据 应用:每个分组运行的计算规则 合并:把每个分组的计算结果合并起来 2、分组函数 DataFrame.groupby(by=None, axis=0, ...
  • pandas分组排序

    2020-10-29 15:25:43
    df.sort_values([‘yxid_id’, ‘msg_times_tamp’], ascending=[False, True], inplace=True)
  • 分为两种情况,不分组进行排序和组内进行排序。什么意思呢?具体来说,我举个栗子。 ****注意**** 如果只是单纯想对某一列进行排序,而不进行打序号的话直接使用.sort_values就可以了。下文是关于如何把序号也打上的...
  • pandas分组排序取第二大的数据

    千次阅读 2019-11-08 11:34:29
    Python用来做数据分析很方便,网上很多关于找数据中第二大的方法,但是大多数都是关于SQL的,于是我挑战一下用Python来做这件事(主要是SQL写的不好>...import pandas as pd df = pd.DataFrame([ {"class...
  • 需要对df进行分组后排序 import pandas as pd df = pd.DataFrame([['a', 100, 'c'], ['a', 300, 'a'], ['a', 200, 'b'], ['c', 300, 'a'], ['c', 200, 'b'], ['c', 100, 'c'], ['b', 200, 'b'], ['b', 300, 'a']...
  • 利用pandas中groupby解决分组对象的组内排序问题

    万次阅读 多人点赞 2019-06-27 09:53:31
    解析:求解思路很清晰,即先用groupby对数据进行分组,然后再根据分组后的某一列进行排序,选择排序结果的top-K结果 案例:取一下dataframe中B列各对象中C值最高所在的行 df = pd.DataFrame({"A": [2, 3, 5, 4], ...
  • pandas 分组排序并保留原始列

    千次阅读 2020-01-08 15:31:56
    其实这一步一般是在sql中完成的,但由于要分组排序的列较多,达30列以上,代码十分不简洁,且连接的数据库为mysql,本身没有row_number() over( paritition by··· ···)的语句,实现起来较为麻烦。而本次的原始...
  • pandas指南-4.数据分组聚合和排序

    千次阅读 2020-06-15 00:05:09
    数据分组聚合和排序 多索引 排序 数据分组聚合和排序 分组聚合非常重要,它在官方pandas文档中有自己的部分:Groupby:split-apply-combine。 import pandas as pd pd.set_option('max_rows', 5) import numpy...
  • 1. 示例数据(各班级学生得分) import pandas as pd data_dict = {"name": ["Rose", "Jack", "Tom", "Kyle", "Jery", "Adam", "Bill", "David", "Denny", "Evan"], "class": [1, 2, 3, 1, 2, 3, 1, 2,...
  • python pandas 数据groupby处理后排序

    千次阅读 2021-01-02 20:34:24
    python pandas 数据groupby处理后排序 import pandas as pd data_csv = pd.read_csv('./static/task1_1_A.csv', encoding='gbk') #打印前10行数据 print(data_csv.head(10)) #每个课程的次数 data_count_list = ...
  • pandas分组后应用apply函数 知识:Pandas的GroupBy遵从split、apply、combine模 这里的split指的是pandas的groupby,我们自己实现apply函数,apply返回的结果由pandas进行combine得到结果 GroupBy.apply(function) ...
  • 源数据如上所示,需要输出每个城市销售额排名靠前的三家零售商。具体做法如下: S1:读取文件 #读取源数据文件 import pandas as pd file_path=r"E:\临时\20211103\temp.xlsx" ...S3:分组后取每组排名前三的.
  • 这算是一个用pandas处理csv的demo,有助于理解DataFrameGroupBy的数据结构。 demo写得不好(有两个输出文件,其中一个是临时加的,典型的缝合怪代码),但其中包含了不少常见的操作,仅供参考。 import sys import ...
  • pandas 分组后取第N行

    千次阅读 2019-05-27 10:12:37
    目的: 把question_id 对应的user_answer转成ABCD solution dfa=df.groupby('question_id').nth(0).reset_index() dfa['flag']='A' dfb=df.groupby('question_id').nth(1).reset_index() dfb['flag']='B' ...
  • import pandas as pd ad = pd.read_excel('/data1/xx/ad/量表/ADNIwithScore(1).xls',sheet_name = 'AD453') print(ad.shape) ad.head(10) 可以看到subject是病人,一个病人有好几次扫描,但我每个病人只想取其中...
  • pandas组内排序,并在每个分组内按序打上序号 pandas dataframe 对dep_id组内的salary排序。希望给下面原本只有前三列的dataframe,添加上第四列。 等价于sql的row_number() 假设我已经建好了仅有前三列的dataframe...
  • from matplotlib import cm,colors from matplotlib import pyplot as plt ...import pandas as pd plt.rcParams["font.sans-serif"]='SimHei' #解决中文乱码问题 plt.rcParams['axes.unicode_min
  • )#删除'物理'行相同的重复行 排序 df1.sort_values('数学',ascending=False)#按照'数学'排序 df1.sort_values(['数学','语文'],ascending=False)#先按照'数学','语文'排序 分组 dfCsv.groupby('流量来源',as_index...
  • Pandas 练习:分组排序

    千次阅读 2018-12-06 14:08:53
    在数据处理时可能需要我们进行分组处理,Python的数据科学库Pandas提供了类似SQL的groupby来对数据进行分组处理,同时Pandas库还允许我们对每个分组进行排序等一系列处理。 数据集下载: winemag-data-130k-v2.csv...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,371
精华内容 3,348
关键字:

pandas分组后排序