用Python中的dictionary键重命名df列名



我有以下df和dict:

df = pd.DataFrame({'a':[1,2,3,4], 'x':[11,12,13,14]})
dict_ = {'new_a':['a','b','c'],'new_x':['x','y','z']} 

我想检查dict_values中是否存在列'a''x',如果存在,请用它们的键值重命名它们。

期望输出:

df = pd.DataFrame({'new_a':[1,2,3,4], 'new_x':[11,12,13,14]})

反转/压平字典和rename:

d2 = {k:v for v,l in dict_.items() for k in l}
# {'a': 'new_a', 'b': 'new_a', 'c': 'new_a',
#  'x': 'new_x', 'y': 'new_x', 'z': 'new_x'}
out = df.rename(columns=d2)

输出:

new_a  new_x
0      1     11
1      2     12
2      3     13
3      4     14

最新更新