【问题标题】:How can I add a counter column that counts specific values in another column in a pandas dataframe?如何添加一个计数器列来计算熊猫数据框中另一列中的特定值?
【发布时间】:2020-05-24 03:00:50
【问题描述】:

我有一个大型数据框(>16M 行),其中有一列名为“用户”。每个用户都有不止一次出现。我想添加一个新列“计数器”,每次特定用户有新记录时都会增加。

数据框如下所示:

用户收入
AAA 100000
BBB 150000
CCC 10000
AAA 200000
BBB 100000

我希望它在新的计数器列中看起来像这样

用户收入计数器
AAA 100000 1
BBB 150000 1
CCC 100000 1
AAA 200000 2
BBB 100000 2

我尝试了以下代码行,但它需要很长时间:

for i in range(500000):
   user=df_user.iloc[i,0]
   a=1

   for j in range(2000000):
      if df.iloc[j,0] == user:
         df.iloc[j,2] = a
         a = a+1

提前致谢。

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    请查看熊猫cumcount

    df['counter'] = df.groupby('user').cumcount()
    

    应该做的伎俩

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-12
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多