Pandas,如何为所有以数字开头的列名添加前缀?

Bil*_*ill 2 python pandas

我有一个包含很多列的数据集,超过 400,其中一些列名的开头有数字,这是列名的部分列表:

nextday_open
nextday_movement
nextday_movement_direction
nextday_movement_amount
nextday_daytime_movement
nextday_daytime_direction
overnight_movement
overnight_direction
5days_running_std
5days_running_var
5days_diff_std
5days_running_med_diff
Run Code Online (Sandbox Code Playgroud)

如何向所有以数字开头的列附加前缀?它应该是这样的:

nextday_open
nextday_movement
nextday_movement_direction
nextday_movement_amount
nextday_daytime_movement
nextday_daytime_direction
overnight_movement
overnight_direction
col_5days_running_std
col_5days_running_var
col_5days_diff_std
col_5days_running_med_diff
Run Code Online (Sandbox Code Playgroud)

由于列太多,我无法单独重命名它们。

Mus*_*dın 6

使用正则表达式:

df.columns = df.columns.str.replace(r"^(\d+)", r"col_\1")
Run Code Online (Sandbox Code Playgroud)

如果它以 ( ^) 一个或多个数字 ( \d+)开头,则捕获这些数字并将其替换为col_{digits}where\1指的是第一个捕获组(如果有)。