Python-Pandas:将增量编号添加到现有列

时间:2019-05-10 12:50:33

标签: python pandas

我有一个包含几列的数据框。

示例数据:

d = {'col1': ['A','B','C','D']}
df = pd.DataFrame(data=d)

我正在尝试修改col1并添加“ _1”,“ _ 2”

要获得类似的东西:

     col1
 0    A_1
 1    B_2
 2    C_3
 3    D_4

我试图做这样的事情:

df_final['col1'] = df_final['col1'].apply(lambda x: str(x)+str(df_final[x].index))

但是我得到了错误:

KeyError: 'A'

1 个答案:

答案 0 :(得分:2)

1添加到索引,转换为字符串,如果DataFrame中的默认索引添加到列:

df['col1'] = df['col1'] + '_' + (df.index + 1).astype(str)
print (df)
  col1
0  A_1
1  B_2
2  C_3
3  D_4

如果不是默认的RangeIndex

df['col1'] = df['col1'] + '_' + pd.RangeIndex(1, len(df) + 1).astype(str)

或将f-stringenumerate一起使用:

df['col1'] = [f'{b}_{a}' for a, b in enumerate(df['col1'], 1)]
print (df)
  col1
0  A_1
1  B_2
2  C_3
3  D_4