代码之家  ›  专栏  ›  技术社区  ›  Richard

熊猫:将单元格值设置为当前行的索引?

  •  1
  • Richard  · 技术社区  · 6 年前

    我有一个这样的数据框:

       a    b   c    country
    0  5    7   11   Morocco
    1  5    9   9    Nigeria
    2  6    2   13   Spain
    

    我想加一行 d ,其中包含国家名称和行的索引(加1)。这样地:

       a    b   c    country    d
    0  5    7   11   Morocco    1. Morocco
    1  5    9   9    Nigeria    2. Nigeria
    2  6    2   13   Spain      3. Spain
    

    我该怎么做?我能做到:

    df['d'] = '1. ' + df['country']
    

    但是我很难弄清楚如何得到这行的索引。

    1 回复  |  直到 6 年前
        1
  •  2
  •   jezrael    6 年前

    将索引值转换为字符串并添加列 country :

    df['d'] = (df.index + 1).astype(str) + '. ' + df['country']
    print (df)
       a  b   c  country           d
    0  5  7  11  Morocco  1. Morocco
    1  5  9   9  Nigeria  2. Nigeria
    2  6  2  13    Spain    3. Spain
    

    另一个解决方案 python 3.6+ :

    df['d'] = [f'{i + 1}. {x}' for i, x in enumerate(df['country'])]
    #for versions below
    #df['d'] = ['{}. {}'.format(i + 1, x) for i, x in enumerate(df['country'])]
    print (df)
       a  b   c  country           d
    0  5  7  11  Morocco  1. Morocco
    1  5  9   9  Nigeria  2. Nigeria
    2  6  2  13    Spain    3. Spain