python对excel某一列求和-如何对某一列自动分组,统计求和

对 v2 列分组,映射成分组 ID 列,然后做平均值统计便可。

请参考以下代码

'''

按区间对某列做分组,然后统计各组的另一列的平均值。

author: 李毅

'''

import numpy as np

import pandas as pd

df = pd.DataFrame([

[0.1, 1],

[0.2, 2],

[0.3, 3],

[0.4, 4],

[0.5, 5],

[0.6, 6],

], columns=['v1', 'v2'])

# 对列 v2 分组。

# 除了 np.histogram ,还可以用等距法等分区间,这取决于你的业务需求。

ranges = np.histogram(df.v2.values, 3)[1]

def tag_v2(value, ranges):

''' 用分组 ID 对 v2 值做标签。 '''

for i in range(len(ranges) - 1):

if value >= ranges[i] and value <= ranges[i+1]:

return i

return -1

# 添加 v2 标签列。

df['v2_tag'] = df.v2.apply(lambda i: tag_v2(i, ranges))

print df

输出结果

v1 v2 v2_tag

0 0.1 1 0

1 0.2 2 0

2 0.3 3 1

3 0.4 4 1

4 0.5 5 2

5 0.6 6 2

统计平均值

print df.groupby('v2_tag')['v1'].mean()

输出结果

v2_tag

0 0.15

1 0.35

2 0.55

Name: v1, dtype: float64

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值