使用年份标签重命名多个列,而不重复逻辑

时间:2018-04-22 01:49:14

标签: python pandas dictionary dataframe rename

我的数据框中有几列除了数字之外没有命名。在这种情况下,列的编号为50到59.我想用年份标签重命名列,即列50将重命名为' 2006'第51列重命名为' 2007'等等。

我有以下代码重命名列,这有效,但就我需要做多少输入而言似乎过于重复:

GDP.rename(columns={50:'2006', 51:'2007', 52:'2008', 53:'2009',54:'2010', 55:'2011', 56:'2012', 57:'2013', 58:'2014', 59:'2015'}, inplace=True)

有没有办法以较简洁的方式使用.rename()方法

我觉得我应该能够将[49:60]和一系列年份[2006:2015]的一系列列传递到.rename()方法中,以达到相同的效果。

1 个答案:

答案 0 :(得分:0)

是的,你有几个选择。

选项1

使用词典理解:

GDP.rename(columns={i: str(1956+i) for i in range(50, 60)}, inplace=True)

选项2

使用自定义功能。这可以是匿名lambda

GDP.rename(columns=lambda x: str(1956+x) if isinstance(x, int) else x, inplace=True)