有没有一种方法可以在Python中重命名多个df列?

时间:2019-06-17 19:07:06

标签: python python-2.7 multiple-columns

我正在尝试使用Python将数据框中的多个列重命名为某些日期。

当前,列如下:2016-04、2016-05、2016-06 ....

我希望专栏阅读:2016年4月,2016年5月,2016年6月...

大约有40列。我猜想for循环将是执行此操作的最有效方法,但是我对Python相对较新,并且不确定如何正确连接列名。

2 个答案:

答案 0 :(得分:0)

您可以使用循环或理解以及月份字典来拆分,重新排序和替换字符串列名称

#in your case this would be cols=df.columns
cols=['2016-04', '2016-05', '2016-06']
rpl={'04':'April','05':'May','06':'June'}

cols=[\
 ''.join(\
         [rpl[i.split('-')[1]],
              i.split('-')[0]]) \
 for i in cols]

cols
['April2016', 'May2016', 'June2016']

#then you would assign it back with df.columns = cols

答案 1 :(得分:-1)

您没有共享数据框,因此我使用基本数据框来说明如何获取给定的月份。我认为您的数据框喜欢:

d = {'dates': ['2016-04', '2016-05','2016-06']} #just 3 of them

所有代码:

import datetime
import pandas as pd
d = {'dates': ['2016-04', '2016-05','2016-06']}
df = pd.DataFrame(d)

for index, row in df.iterrows():
    get_date= row['dates'].split('-')
    get_month = get_date[1]
    month = datetime.date(1900, int(get_month), 1).strftime('%B')
    print (month+get_date[0])

输出:

2016April
2016May
2016June