cqwcns 发表于 2022-1-19 13:32

python pandas统计制定值数量的问题

df中有一列【账号】,现在我新建一列【总投诉次数】,然后统计本行账号,在【帐号】列出现的次数,即账号重复次数。


到这里都没有问题。


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



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

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




需求类似EXCEL的这样:

菱角 发表于 2022-1-19 14:25

采用遍历的方法可行
for i in range(df.shape):
    x = df.loc
    df_1 = df
    df.loc =len(df_1== x])

gufengaoyue 发表于 2022-1-20 11:22

推导式就可以了。
df['本次投诉次数'] = [ df[:x+1]['账号'].to_list().count(df['账号']) for x in range(df.shape)]

rsnodame 发表于 2022-1-29 14:15

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

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


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

lizy169 发表于 2022-2-15 14:25

简单粗暴,没技术含量,供参考:
df['辅助列'] = 1   
df['本次投诉次数'] = df['辅助列'].groupby(df['账号']).cumsum()
页: [1]
查看完整版本: python pandas统计制定值数量的问题