我有以下基本的熊猫数据框:
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))
,但是它给了我所有的索引值。
我肯定有一个简单的方法,但是我找不到它。任何帮助将不胜感激!
答案 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)