【问题标题】:Create Interval of Years and extract repeated value创建年份间隔并提取重复值
【发布时间】:2022-01-05 16:20:43
【问题描述】:

我有一张类似这样的表:

Name Year
Name1 1950
Name2 1951
Name3 1952
Name4 1953
...... ....
Name7 2019
Name3 2020
Name9 2021

而且我必须提取从最小日期到最大日期的所有几十年(每 10 年)重复的名称。

我正在尝试进行 groupby,但我无法得到我想要的结果。

groupby如下:

data.groupby('Year').Name.nunique().reset_index()

问题是这个 groupby 为我单独分组年份,我想提取每 10 年重复一次的人的名字。

提取这些信息的方法是什么?

谢谢。

【问题讨论】:

    标签: python pandas group-by pandas-groupby


    【解决方案1】:

    最简单的方法是创建一个有几十年的临时列,然后按该列分组:

    df = pd.DataFrame({
        "Name": ["Name1","Name2","Name2","Name1","Name3","Name3"], 
        "Year": [1950,1951,1952,1960,1961,1961]
    })
    
    df['Decade'] = (df['Year']//10)*10
    counts = df.groupby(['Decade'])['Name'].value_counts()\
                .rename('Counts').reset_index()
    

    这给了我们:

        Decade  Name    Counts
    0   1950    Name2   2
    1   1950    Name1   1
    2   1960    Name3   2
    3   1960    Name1   1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-09
      • 1970-01-01
      • 2021-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      相关资源
      最近更新 更多