Python-Pandas:向现有列添加递增编号
我有一个包含多个列的数据框架 示例数据:Python-Pandas:向现有列添加递增编号,python,pandas,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].inde
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
添加到索引中,如果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
如果不是默认值
范围索引
:
df['col1'] = df['col1'] + '_' + pd.RangeIndex(1, len(df) + 1).astype(str)
或者将f-string
s与enumerate
一起使用:
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
太好了,这正是我想要的