当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Python pandas自定义函数的使用方法示例(3)

    栏目:Linux/apache问题 时间:2019-12-03 10:57

    数据分组之后再合并

    import pandas as pd
    import numpy as np
    # todo 分组聚合之后数据的处理
    dict_new = {
     'data1':np.random.randint(5,15,8),
     'data2':np.random.randint(5,15,8),
     'data3':4,
     'key1':list('aabbccdd'),
     'key2':['one','two','three','one','two','three','one','two']
    }
    df1 = pd.DataFrame(dict_new,index=list('ADCBFEGH'))
    print(df1)
    # # todo 按照key1进行分组,
    # groupy_obj = df1.groupby(by='key1')
    # print(groupy_obj)
    # for name,data in groupy_obj:
    #  print(name)
    #  print(data)
    # # todo 分组之后进行求和操作
    # sum_data_group = groupy_obj.sum()
    # print(sum_data_group)
    # # todo 分组之后增加前缀
    # sum_data_group = sum_data_group.add_prefix('group_key1')
    # print(sum_data_group)
    # # todo 先用merge进行关联
    # merge_df = pd.merge(df1,sum_data_group,left_on='key1',right_index=True)#左表的列名,右表的行索引名
    # print(merge_df)
    # todo 取数据的两列分组
    groupby_obj = df1.loc[:,['data1','data2']].groupby(df1['key1'])#选区数据其中的数据,按照数据中的列进行分组
    # todo 求和
    data = groupby_obj.sum()
    data1 = groupby_obj.transform('sum').add_prefix('trans_group')#transform 来计算会维持原来的数据结构
    # todo 按行合并
    print(pd.concat([df1,data1],axis=1))
    
    

    关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》

    希望本文所述对大家Python程序设计有所帮助。