Python 将字符串编号连接到系列索引的开头
我有以下系列:Python 将字符串编号连接到系列索引的开头,python,pandas,Python,Pandas,我有以下系列: ser = pd.Series(["foo","bar","a",4,5], index=["a", "b", "c", "d", "e"]) ser a foo b bar c a d 4 e 5 dtype: object 我想在索引之前串联一个递增的字符串号,如下所示:
ser = pd.Series(["foo","bar","a",4,5], index=["a", "b", "c", "d", "e"])
ser
a foo
b bar
c a
d 4
e 5
dtype: object
我想在索引之前串联一个递增的字符串号,如下所示:
#期望输出
0_a foo
1_b bar
2_c a
3_d 4
4_e 5
dtype: object
我试过这个:
increment = iter(range(0,10))
ser.index = str(next(increment))+"_"+ser.index
但是字符串数不会增加。我应该如何处理这个问题?将列表理解与
f-string
s和enumerate
结合使用:
ser.index = [f'{a}_{b}' for a, b in enumerate(ser.index)]
或将RangeIndex
转换为字符串,并使用:
或:
是如何回答问题的极好指南。如果能解释一下,看看这是否是一个普遍适用的答案,那就太好了。
ser.index = pd.RangeIndex(len(ser)).astype(str).str.cat(ser.index, sep='_')
ser.index = pd.RangeIndex(len(ser)).astype(str) + '_' + ser.index
print (ser)
0_a foo
1_b bar
2_c a
3_d 4
4_e 5
dtype: object
ser.index.map(lambda x : str(next(increment))+x)