DataFrame对象的groupby函数使用小结

import pandas  as pd

# test_groupby.csv数据集说明

name,number,rank
  A,   24,   12
  B,   23,  109
  C,   34,  108
  A,   23,   1
  A,   23,   1
  C,   11,   1

# 输出结果 df
name,number,rank
  A,   70,   1
  B,   23,  109
  C,   45,   1


def deal_with_single_uid(uid_info, argv = None):
    '''
    type(uid_info) : DataFrame 
                     
    '''
    param_1,..., param_k = argv[0],...,argv[k-1]
    number = 0; rank = 1000
    for row in uid_info.itertuples(index=False, name=None):
        number += row[1]
        rank = min(rank, row[2])
    who = uid_info['name'].as_matrix()[0]
    return pd.DataFrame([[who, number, rank]], columns=['name', 'number', 'rank'])



if __name__ == '__name__':

    file_path = '../test_groupby.csv'
    data = pd.read_csv(file_path)
    df = data.groupby('name').apply(deal_with_single_uid, argv = [param_1, ..., param_k])
    
    # type(temp_data) = pandas.core.groupby.DataFrameGroupBy
    temp_data = data.groupby('name') 
    
    temp = [item for item in temp_data]
    # temp的具体内容
    [('A',   name  number  rank
       0       A      24    12
       3       A      23     1
       4       A      23     1), 
     ('B',   name  number  rank
       1       B      23   109),
     ('C',   name  number  rank
       2    C      34   108
       5    C      11     1)]
    # type(temp[0]) : tuple; type(temp[0][1]) :  DataFrame
    temp[0][0]  : 'A'
    temp[0][1]  :
       name  number  rank
    0   A      24    12
    3   A      23     1
    4   A      23     1



 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ReLuJie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值