我试图在数据框中标记相同值(年份)的频率,并将其显示为原始数据框中的一列。在此之前,我需要根据另一列对所有行进行分组。这是虚拟数据,原则上,我有更多的列和行。这就是我所做的,但我不知道如何将其映射回原始数据框(进入单独的列)
data1 = [[1, 'Tom', 1987], [1, 'Bill', 1987], [1, 'Andrew', 1988],[2, 'Ann', 1994], [2, 'Olya', 1984], [2, 'Andrew', 1984], [2, 'Tony', 1989]]
df1 = pd.DataFrame(data1, columns = ['group', 'name', 'year'])
unique_year = df1.groupby(['group'])['year'].apply(lambda s: s.value_counts())
freq = unique_year.to_frame()
freq
group year
1 1987 2
1988 1
2 1984 2
1994 1
1989 1
这是期望的结果:
group name year year_frequency
1 Tom 1987 2
1 Bill 1987 2
1 Andrew 1988 1
2 Ann 1994 1
2 Olya 1984 2
2 Andrew 1984 2
2 Tony 1989 1
对不起,我对熊猫很陌生。