簡體   English   中英

刪除不需要的字符並編輯pandas中的列名

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM