美文网首页
pandas中常用排序处理方法(Series与DataFrame

pandas中常用排序处理方法(Series与DataFrame

作者: 越大大雨天 | 来源:发表于2019-03-27 13:03 被阅读0次
    介于自己经常忘掉pandas的数据排序操作,这里做一个常用方法的整理,示例数据使用的知乎数据:
    • 先导入并用groupby分别生成一个Series和DataFrame示例数据:
    import pandas as pd
    
    path = "./知乎数据_201701.csv"
    data = pd.read_csv(path,engine='python')
    series = data.groupby("职业1").size()
    frame = data.groupby("所在行业")["关注的问题","关注的话题"].sum()
    
    print(type(series))
    print(serie.head())
    print(type(frame))
    print(frame.head())
    
    #输出如下:
    """
    <class 'pandas.core.series.Series'>
    职业1
    交通仓储     578
    信息传媒    1411
    公共服务    2754
    农林牧渔     462
    制造加工    3345
    dtype: int64
    <class 'pandas.core.frame.DataFrame'>
            关注的问题   关注的话题
    所在行业                 
    ??         62      74
    临床医疗   203987   28070
    互联网   1848010  338690
    交通仓储    28174    4017
    人力资源    81371   13468
    """
    
    • 对Series数据进行排序:

    • series.sort_values()与 sort_index()分别按照值、索引进行排序。
    • ascending参数默认为True,对values升序排序;
    • inplace参数默认为False,当指定inplace=True时,将同时修改原数据。

    以sort_values()为例:

    s = series.sort_values(ascending=False)
    print(s.head())
    
    #输出如下,对values进行了降序排列:
    """
    职业1
    高新科技    10595
    金融       4196
    制造加工     3345
    服务业      3068
    公共服务     2754
    dtype: int64
    """
    
    • 对DataFrame数据进行排序:

    • 与Series相似,Dataframe也有按sort_values()与 sort_index()分别按照值、索引进行排序。
    • 参数by=“columns_name”指定排序值参考列,默认ascending=True按升序排序,指定inplace=True,将同时修改原数据。。
    • 可传入axis=1,按行标签排序,不过用到的时候貌似不多。
    df1 = frame.sort_values(by="关注的问题",ascending=False)
    print(df1.head())
    
    #输出如下,按“关注的问题”列进行降序排序:
    """
        关注的问题   关注的话题
    所在行业        
    互联网 1848010 338690
    计算机软件   979808  180918
    高等教育    540299  119766
    高新科技    530060  87961
    金融  498247  93680
    """
    
    df2 = frame.sort_values(by="关注的话题",ascending=True).drop("??")
    df2.head()
    
    #输出如下,按"关注的话题"列进行升序排序:
    """
        关注的问题   关注的话题
    所在行业        
    ??  62  74
    疗养服务    147 122
    管线运输    430 122
    造纸业 2537    251
    美容  801 602
    """
    

    希望以后这种简单操作不要再忘了,多用才能记住啊~~

    相关文章

      网友评论

          本文标题:pandas中常用排序处理方法(Series与DataFrame

          本文链接:https://www.haomeiwen.com/subject/zrfzvqtx.html