我有一个如下所示的df:
2019 2018
Sally -6461 -6340
Brian 7139 7200
rebecca 1337 1067
mark 10922 11128
toto 12936 13054
,列表为:
listVal = ["Sally","rebecca"]
对于listVal
中的行,我想通过添加00
来更改名称
这样最终的df如下所示:
2019 2018
Sally00 -6461 -6340
Brian 7139 7200
rebecca00 1337 1067
mark 10922 11128
toto 12936 13054
是否有一个行代码无需使用如下所示的for循环就可以实现这一目标?
for val in listVal:
df.index = df.index.str.replace(val, val+'00')
答案 0 :(得分:1)
您可以将where
与isin
一起使用
df.index = df.index.where(~df.index.isin(listVal), df.index+'00')
df
2019 2018
Sally00 -6461 -6340
Brian 7139 7200
rebecca00 1337 1067
mark 10922 11128
toto 12936 13054
答案 1 :(得分:0)
如果Sally,Brian等是索引名,则熊猫具有内置的功能来重命名列和行名
df_new = df.rename(index={'Sally': 'Sally00','rebecca':'rebecca00'})
您可以使用任何列表来指定方法以编程方式为行创建新名称。
@maow建议您可以使用以下内容。
df.rename(index={val: val+'00' for val in ['Sally', 'rebecca']})