为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

蝴蝶不菲 2023-08-08 17:16:17
我有以下基本的熊猫数据框: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    Rank0     John        A         A11     Mick        A        A22     Tess        A        A33     Jackie      A        A44     Tash        A        A5我已经尝试过,df['Rank'] =df['Rank'].fillna("A"+str(df.index.values+1))但它给了我所有的索引值。我确信有一个简单的方法,但我似乎找不到它。任何帮助将不胜感激!
查看完整描述

3 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

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


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


查看完整回答
反对 回复 2023-08-08
?
HUWWW

TA贡献1874条经验 获得超12个赞

有多种方法可以解决这个问题。

  1. 最简单的

    df['Rank1'] = df['Category'] + (df.reset_index().index+1).astype(str)

  2. 专业的

    df['Rank2'] = df['Category'] + (np.arange(df.shape[0])+1).astype(str)

或者

df['Rank3'] = df['Category'] + (np.arange(len(df))+1).astype(str)
  1. 其他

    df.insert(loc=0, column='Rank4', value=df['Category'] + np.arange(len(df))+1).astype(str))


查看完整回答
反对 回复 2023-08-08
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

你可以试试这个:

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


查看完整回答
反对 回复 2023-08-08
  • 3 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信