首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有办法在Python中重命名多个df列?

有没有办法在Python中重命名多个df列?
EN

Stack Overflow用户
提问于 2019-06-18 03:07:06
回答 2查看 182关注 0票数 0

我正在尝试使用Python将数据帧中的多个列重命名为特定日期。

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

我希望这些列显示为: April2016,May2016,June2016...

大约有40列。我猜for循环是最有效的方法,但是我对Python比较陌生,不确定如何正确地连接列名。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-18 03:20:49

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

代码语言:javascript
复制
#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
票数 0
EN

Stack Overflow用户

发布于 2019-06-18 03:20:38

你没有分享你的数据框,所以我使用了基本的数据框来解释如何获得月份的日期。我假设你的数据框如下:

代码语言:javascript
复制
d = {'dates': ['2016-04', '2016-05','2016-06']} #just 3 of them

所以所有的代码:

代码语言:javascript
复制
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])

输出:

代码语言:javascript
复制
2016April
2016May
2016June
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56637456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档