Python 对于列中的类似值,请添加新列频率

Python 对于列中的类似值,请添加新列频率,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据帧: Id age number 1 35 7 5 76 9 1 15 0 2 10 4 5 43 8 我需要得到的是: Id age number freq 1 35 7 2 5 76 9 2 1 15 0 1 2 10 4 1 5 43 8 1 添加一个新列频率,对于列中的每个值,我们将获取ID中具有相同值的所有行,并对cat值较

我有一个数据帧:

Id  age number 
1    35   7
5    76   9
1    15   0
2    10   4
5    43   8
我需要得到的是:

Id  age  number freq
1   35    7     2
5   76    9     2
1   15    0     1
2   10    4     1
5   43    8     1

添加一个新列频率,对于列中的每个值,我们将获取ID中具有相同值的所有行,并对cat值较小的行进行计数。

如果需要按降序使用计数器,请使用:

但如果需要按
Id
使用计数值,则输出不同:

df['freq'] = df.groupby('Id')['Id'].transform('size')
与和的替代方案:


如果需要按降序排列的计数器,请使用:

但如果需要按
Id
使用计数值,则输出不同:

df['freq'] = df.groupby('Id')['Id'].transform('size')
与和的替代方案:

df['freq'] = df['Id'].map(df['Id'].value_counts())