创建年份间隔并提取重复值
Create Interval of Years and extract repeated value
我有一个 table 类似于:
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 年重复一次的人的名字。
提取这些信息的方法是什么?
谢谢。
最简单的方法是创建一个有几十年的临时列,然后按该列分组:
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
我有一个 table 类似于:
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 年重复一次的人的名字。
提取这些信息的方法是什么?
谢谢。
最简单的方法是创建一个有几十年的临时列,然后按该列分组:
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