[英]Removing unwanted characters and editing Column names in pandas
我有一些帶有某些列名的pandas df。 列名如下,
u'Kanta / City',u'Aluepaso / Regional Level',u'Akue / District',u'Seotukartakudi /地圖代碼',u'k / Age',u'2015',u'2016',u' 2017',u'2018'。
我想要做的是,在一行代碼中重命名列,如下所示,
'City','Regional_Level','District','Map_Code','Age','2015','2016','2017','2018'。
有沒有有效的方法(使用lambda函數)?
使用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')
最簡單的是使用正則表達式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')
正則表達式解釋:
.*
匹配任何字符(行終止符除外)
*
量詞 - 在零和無限次之間匹配,盡可能多次,根據需要回饋(貪婪)匹配下面列表中的單個字符
[\\\\\\/]
\\\\
匹配字符\\
字面(區分大小寫)
\\/
匹配字符/
字面(區分大小寫)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.