吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1079|回复: 4
收起左侧

[求助] python pandas统计制定值数量的问题

[复制链接]
cqwcns 发表于 2022-1-19 13:32
df中有一列【账号】,现在我新建一列【总投诉次数】,然后统计本行账号,在【帐号】列出现的次数,即账号重复次数。


到这里都没有问题。


确认我希望新建一列【本次投诉次数】,用来统计本行账号到本行出现的次数,这个不知道应该怎么写?请指教,谢谢。

[Python] 纯文本查看 复制代码

df['总投诉次数'] = df['账号'].apply(
    lambda x: len(df[df['账号'] == x]))

// 本次投诉次数就是统计到本行该账号出现的次数,不知道怎么写。
df['本次投诉次数'] = df['账号'].apply(
lambda x: len(df[df['账号'] == x]))




需求类似EXCEL的这样:
微信图片_20220119132946.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

菱角 发表于 2022-1-19 14:25
采用遍历的方法可行
for i in range(df.shape[0]):
    x = df.loc[i,"账号"]
    df_1 = df[0:i+1]
    df.loc[i,"本次投诉次数"] =  len(df_1[df_1["账号"]== x])

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
cqwcns + 1 + 1 谢谢@Thanks!

查看全部评分

gufengaoyue 发表于 2022-1-20 11:22
推导式就可以了。
[Python] 纯文本查看 复制代码
df['本次投诉次数'] = [ df[:x+1]['账号'].to_list().count(df['账号'][x]) for x in range(df.shape[0])]

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
cqwcns + 2 + 1 谢谢@Thanks!

查看全部评分

rsnodame 发表于 2022-1-29 14:15
本帖最后由 rsnodame 于 2022-1-29 14:18 编辑

官方内置的方法:https://pandas.pydata.org/docs/r ... oupBy.cumcount.html

[Python] 纯文本查看 复制代码
# sample_df
'''
    id
0  abc
1  edf
2  jkl
3  dfe
4  abc
5  abc
6  edf
7  jkl
8  abc
9  fcl
'''
# 对全体计数
sample_df['总投诉次数'] = sample_df['id'].map(sample_df['id'].value_counts())
# 累积计数
sample_df['本次投诉次数'] = (sample_df.groupby('id').cumcount()) + 1

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
cqwcns + 1 + 1 用心讨论,共获提升!

查看全部评分

lizy169 发表于 2022-2-15 14:25
简单粗暴,没技术含量,供参考:
df['辅助列'] = 1   
df['本次投诉次数'] = df['辅助列'].groupby(df['账号']).cumsum()

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
cqwcns + 1 + 1 谢谢@Thanks!

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 16:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表