在熊猫的列字符串中添加行号

时间:2020-09-16 13:29:00

标签: python 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

我想在rank列中输入一个字符串,使其显示为:

        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)),但是它给了我所有的索引值。

我肯定有一个简单的方法,但是我找不到它。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:4)

如果您有多个不同的类别,则更加安全

df['Rank'] = df.Category + df.groupby('Category').cumcount().add(1).astype(str)
df
Out[232]: 
     Name Category Rank
0    John        A   A1
1    Mick        A   A2
2    Tess        A   A3
3  Jackie        A   A4
4    Tash        A   A5

答案 1 :(得分:0)

您可以尝试以下方法:

df['Rank'] = df['Category'] + (np.arange(len(df)) + 1).astype(str)
OR
df['Rank'] = df['Category'] + (df.index + 1).astype(str)