pandas 从string [duplicate]生成简单id

mzmfm0qo  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(91)

此问题在此处已有答案

How can I do a sequential count based on column value and timestamp in pandas?(3个答案)
12天前关闭
我有一个基于字符串信息生成id(没有哈希等复杂性)的框架。代码如下:

df['id'] = df.City.str[:3] + '-' + df.Name.str[:3] +'-' + df.index.astype(str)

City    Name        Id
Paris   John        Par-Joh-1
Paris   Paul        Par-Pau-2
Paris   Pierre      Par-Pie-3
Paris   Paula       Par-Pau-4
Rome    Riccardo    Rom-Ric-5
Rome    Jean-Paul   Rom-Jea-6
Rome    Franc       Rom-Fra-7

字符串
我的问题是,当列City的名称更改时,代码不会重新启动count(见上文)。我如何调整代码以达到所需的输出(见下文)?

City    Name    Id
    Paris   John    Par-Joh-1
    Paris   Paul    Par-Pau-2
    Paris   Pierre  Par-Pie-3
    Paris   Paula   Par-Pau-4
    Rome    Riccardo    Rom-Ric-1
    Rome    Jean-Paul   Rom-Jea-2
    Rome    Franc   Rom-Fra-3


谢谢你

xzlaal3s

xzlaal3s1#

GroupBy.cumcount与add 1一起使用并转换为string

df['id'] = (df.City.str[:3] + '-' + df.Name.str[:3] +'-' + 
            df.groupby('City').cumcount().add(1).astype(str))

字符串

相关问题