【问题标题】: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