【问题标题】:counter for many distinct values in data frame column数据框列中许多不同值的计数器
【发布时间】:2016-05-22 21:18:10
【问题描述】:

我在构建一个函数时遇到问题,该函数可以从数据框中的列中获取值并为每个不同的事件保留一个计数器。

我想从列 Col. 生成列 Cnt。

Col Cnt
A   1
B   1
A   2
C   1
B   2
A   3
C   2

我的主要问题是保留每个计数器的值(A 的计数器,B 的计数器,C 的计数器,...),因为基数非常高(数千个不同的值和近 300 万条记录)。 作为最后一个资源,我正在考虑以下内容:

1 - 将 .unique() 应用于列并将该系列存储在变量 var 中;

2 - 遍历数据框的所有行,应用以下内容:IF df.col = var.VALUE1, cnt=cnt+1;

3 - 遍历系列的所有值。

我希望是否有一种功能/方式可以让我更有效地执行此操作。

谢谢!

【问题讨论】:

    标签: python pandas dataframe counter


    【解决方案1】:

    如果我理解正确的话,

    df["Cnt"] = df.groupby("Col").cumcount() + 1
    
    df
    Out[29]: 
      Col  Cnt
    0   A    1
    1   B    1
    2   A    2
    3   C    1
    4   B    2
    5   A    3
    6   C    2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-26
      • 2018-08-18
      • 1970-01-01
      • 1970-01-01
      • 2019-08-14
      • 1970-01-01
      相关资源
      最近更新 更多