将行号添加到 pandas 中的列字符串

我有以下基本的熊猫数据框:


df:

            Name    Category    Rank

    0     John        A         nan

    1     Mick        A         nan

    2     Tess        A         nan

    3     Jackie      A         nan

    4     Tash        A         nan

我想在排名列中有一个字符串,所以它是这样的:


        Name    Category    Rank

0     John        A         A1

1     Mick        A        A2

2     Tess        A        A3

3     Jackie      A        A4

4     Tash        A        A5

我已经尝试过,df['Rank'] =df['Rank'].fillna("A"+str(df.index.values+1))但它给了我所有的索引值。


我确信有一个简单的方法,但我似乎找不到它。任何帮助将不胜感激!


蝴蝶不菲
浏览 112回答 3
3回答

慕桂英546537

如果您有多个不同的类别,则更安全df['Rank'] = df.Category + df.groupby('Category').cumcount().add(1).astype(str)dfOut[232]:      Name Category Rank0    John        A   A11    Mick        A   A22    Tess        A   A33  Jackie        A   A44    Tash        A   A5

HUWWW

有多种方法可以解决这个问题。最简单的df['Rank1'] = df['Category'] + (df.reset_index().index+1).astype(str)专业的df['Rank2'] = df['Category'] + (np.arange(df.shape[0])+1).astype(str)或者df['Rank3'] = df['Category'] + (np.arange(len(df))+1).astype(str)其他df.insert(loc=0, column='Rank4', value=df['Category'] + np.arange(len(df))+1).astype(str))

慕雪6442864

你可以试试这个:df['Rank'] = df['Category'] + (np.arange(len(df)) + 1).astype(str) OR df['Rank'] = df['Category'] + (df.index + 1).astype(str)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python