【问题标题】:Group by and take count of first occurrence Pandas Dataframe分组并计算第一次出现的 Pandas Dataframe
【发布时间】:2021-04-16 07:42:02
【问题描述】:

熊猫数据框有 2 列。

Number Character
111 a
111 a
111 b
111 b
111 c
222 b
222 a
222 c
222 b
222 a
222 c
333 c
333 a
333 a
333 b
333 c
333 c

现在我要查找每个数字组的第一个字符列值计数。

期望的输出

Number Character Count
111 a 2
222 b 2
333 c 3

所以我们需要对 Number 进行分组,并且需要 Character 列计数中的第一个值。

【问题讨论】:

    标签: pandas


    【解决方案1】:

    首先通过GroupBy.transformGroupBy.first 过滤第一个值,比较boolean indexing 中的原始值,然后通过GroupBy.size 计算值:

    df = df[df.groupby('Number')['Character'].transform('first').eq(df['Character'])]
    
    df = df.groupby(['Number','Character']).size().reset_index(name='count')
    print (df)    
       Number Character  count
    0     111         a      2
    1     222         b      2
    2     333         c      3
    

    【讨论】:

      猜你喜欢
      • 2021-12-30
      • 1970-01-01
      • 2021-01-06
      • 2018-07-05
      • 2016-12-20
      • 1970-01-01
      • 2017-01-08
      • 1970-01-01
      • 2019-01-15
      相关资源
      最近更新 更多