删除不需要的字符和编辑熊猫中的列名
Posted
技术标签:
【中文标题】删除不需要的字符和编辑熊猫中的列名【英文标题】:Removing unwanted characters and editing Column names in pandas 【发布时间】:2019-04-25 00:24:34 【问题描述】:我有带有某些列名的 pandas df。列名如下,
u'Kanta/City', u'Aluepaso/Regional Level', u'Akue/District', u'Seotukartakudi/地图代码', u'k�/Age', u'2015', u'2016' ,你'2017',你'2018'。
我想做的是,将一行代码中的列重命名如下,
'City'、'Regional_Level'、'District'、'Map_Code'、'Age'、'2015'、'2016'、'2017'、'2018'。
有没有有效的方法(使用 lambda 函数)?
【问题讨论】:
@Kripalu Sar what you should do when someone answers your question 必须学习! 【参考方案1】:使用 lambda:
df.rename(columns=lambda x: x.split('/')[1].replace(' ','_') if '/' in x else x, inplace= True)
df.columns
> Index(['City', 'Regional_Level', 'District', 'Map_code', 'Age', '2015', '2016',
'2017', '2018'],
dtype='object')
【讨论】:
【参考方案2】:最简单的方法是使用正则表达式使用replace
。
>>> df
Empty DataFrame
Columns: [Kanta/City, Aluepaso/Regional Level, Akue/District, Seotukartakudi/Map code, k�/Age, 2015, 2016, 2017, 2018]
Index: []
>>> df.columns.str.replace('.*[\\\/]', '')
Index(['City', 'Regional Level', 'District', 'Map code', 'Age', '2015', '2016',
'2017', '2018'],
dtype='object')
正则表达式解释:
.*
匹配任何字符(行终止符除外)
*
量词 - 匹配零次和无限次,尽可能多次,根据需要回馈(贪婪)匹配下面列表中的单个字符
[\\\/]
\\
匹配字符\
的字面意思(区分大小写)
\/
与字符/
匹配(区分大小写)
【讨论】:
我不理解没有任何评论或反映建议的减号投票?以上是关于删除不需要的字符和编辑熊猫中的列名的主要内容,如果未能解决你的问题,请参考以下文章