2015-11-05 91 views
4

我在pandas中有一個數據框,名爲「string_string」的列,我試圖通過刪除「_」和下面的字符串來重命名它們。例如,我想將「12527_AC9E5」更改爲「12527」。我嘗試過使用各種替換選項,並且我可以替換字符串的特定部分(例如,我可以替換所有的「_」),但是當我引入通配符時,我無法達到期望的結果。在熊貓df列名中替換字符串

下面是我認爲會起作用的一些東西,但不是。如果我刪除他們工作的通配符(即他們替換_)。

df = df.rename(columns=lambda x: x.sub('_.+', '')) 

df = df.columns.str.replace('_.+','') 

任何幫助表示讚賞

回答

9

就劈在 '_',採取的第一個元素。你可以利用字典理解:

df = df.rename(columns={col: col.split('_')[0] for col in df.columns}) 
+0

謝謝,這回答了這個問題!爲什麼使用通配符替換不起作用可以解釋一下嗎?我問的原因是我可以執行我想要使用Perl很容易地完成的任務,但是我有點糊塗,無法理解python正則表達式的內容........ – abissett