重命名datetime pandas类型的pandas列



我有这样的数据帧:

df=pd.DataFrame(data={'2021-11-21':['10','20'],'2021-11-14':['39','21']})
df
2021-11-21    2021-11-14
10            39
20            21

我想要像这样重命名列:

curr_week_2021-11-21    prev_week_2021-11-14
10                      39
20                      21

我试过这个:

df_cols=df.columns.to_list()
df=df.rename(columns={'2021-11-21':'curr_week_'+df_cols[0],'2021-11-14':'prev_week_'+df_cols[1]})

但它没有起作用。

如果要使用rename,请创建dict映射:

df = df.rename(columns={c: f"{p}_{str(c)}"
for c, p in zip(df.columns, ['curr_week', 'prev_week'])})
print(df)
# Output:
curr_week_2021-11-21 prev_week_2021-11-14
0                   10                   39
1                   20                   21

使用任意前缀列表进行编程的一种方法是使用map/zip/join:

prefixes = ['curr_week', 'prev_week']
df.columns = map('_'.join, zip(prefixes, df.columns))

输出:

curr_week_2021-11-21 prev_week_2021-11-14
0                   10                   39
1                   20                   21

最新更新