根据条件为组创建一个新列



我想创建一个新的列(Group ID),基于以下条件:如果DOB和Name的前三个字母相同,则它必须是相同的Group ID。

<表类> 名称 捐助 组ID tbody><<tr>安妮18-01-19220安妮斯科特01-01-19501安妮01-01-19501大卫14-02-19502David Kern15-02-19513威廉·佩里15-02-19534Kenneth字段15-02-19535

在列表中添加多个列,同时也为正确排序sort=False:

df['Group ID Name'] = df.groupby(['DOB',df['Name'].str[:3]], sort=False).ngroup()
print (df)
Name         DOB  Group;ID  Group ID Name
0           Anny  18-01-1922         0              0
1     Anny Scott  01-01-1950         1              1
2          Annie  01-01-1950         1              1
3          David  14-02-1950         2              2
4     David Kern  15-02-1951         3              3
5   William erry  15-02-1953         4              4
6  Kenneth Field  15-02-1953         5              5

最新更新