gpt4 book ai didi

Python 数据帧 : how can I return the number of occurrences in a column?

转载 作者:太空宇宙 更新时间:2023-11-04 01:47:40 27 4
gpt4 key购买 nike

我正在处理一个大型 csv 文件,其中的信息类似于

id      year   decade  code  type
3366 2014 2010 EM Chemical
3366 2014 2010 EM Chemical
3366 2014 2010 EM Chemical
3366 2014 2010 EM Chemical
3366 2014 2010 EM Chemical
427 1972 1970 DR Coastal Storm
337 1972 1970 DR Coastal Storm
337 1972 1970 DR Coastal Storm

我想按“id”列中唯一出现的次数排序。我想要的结果看起来像

id      year   decade  code  type          count
3366 2014 2010 EM Chemical 5
427 1972 1970 DR Coastal Storm 1
337 1972 1970 DR Coastal Storm 2

但是我试图满足于类似的东西

id      year   decade  code  type           count
3366 2014 2010 EM Chemical 5
3366 2014 2010 EM Chemical 5
3366 2014 2010 EM Chemical 5
3366 2014 2010 EM Chemical 5
3366 2014 2010 EM Chemical 5
427 1972 1970 DR Coastal Storm 1
337 1972 1970 DR Coastal Storm 1
337 1972 1970 DR Coastal Storm 2

我试图通过尝试做到这一点

df['count']=df.groupby('id').transform('count')

但是我总是报错

ValueError: Wrong number of items passed 18, placement implies 1

是否有更好的方法来完成此任务?

最佳答案

df.groupby(list(df.columns)).size().reset_index().rename(columns={0:'count'})
  • .size() 会让你计数,但会创建一个多级索引
  • .reset_index() 将删除包含在名为 0 的列中的计数的多级索引
  • .rename(columns = {0:'count'}) 将此列重命名为 count

您可以使用转换,但请确保您传递的序列与数据框的长度相同。您可以通过将 ['year'] 添加到您的 groupby 来执行此操作,但您的任何列都可以:

df['counts'] = df.groupby('id')['year'].transform('count')

关于Python 数据帧 : how can I return the number of occurrences in a column?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58741502/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com