1

我有以下df:

      xx
 A     5
 A     7
 A     4
 B     4 
 B     7
 B     6

我怎样才能添加一个升序的数字前缀,例如:

        xx
 1_A     5
 2_A     7
 3_A     4
 1_B     4 
 2_B     7
 3_B     6
4

1 回答 1

1

按索引创建计数器系列GroupBy.cumcount,添加转换为字符串并添加到索引值:level=01

df.index = df.groupby(level=0).cumcount().add(1).astype(str) + '_' + df.index

或使用Series.str.cat

df.index = df.groupby(level=0).cumcount().add(1).astype(str).str.cat(df.index, sep='_')

print (df)
     xx
1_A   5
2_A   7
3_A   4
1_B   4
2_B   7
3_B   6
于 2019-10-14T07:13:56.380 回答