2017-10-04 90 views

回答

0

使用Series.replace,所以首先轉換indexto_series

df = pd.DataFrame(columns=['nam1', 'nam2', 'nam3', 'nam_4', 'nam_5', 'lin1', 'lin2']) 
d={'nam':'name', 'lin':'link'} 


df.columns = df.columns.to_series().replace(d, regex=True) 
print (df) 

Empty DataFrame 
Columns: [name1, name2, name3, name_4, name_5, link1, link2] 
Index: [] 

編輯:

df = pd.DataFrame(columns=['nam1', 'nam2', 'nam3', 'nam_4', 'nam_5', 'lin1', 'A']) 
d={'nam':'name', 'lin':'link'} 


s = df.columns.to_series() 
pat = "(" + '|'.join(d.keys()) + ")" 
df.columns = s.str.extract(pat, expand=False).combine_first(s).replace(d) 
print (df) 

Empty DataFrame 
Columns: [name, name, name, name, name, link, A] 
Index: [] 
+0

謝謝!但如何在更換時刪除數字。有重複的列是沒問題的。我想要我的輸出作爲名稱,名稱,名稱,名稱,鏈接,鏈接 – Hue

+0

檢查編輯答案。 – jezrael

+1

太棒了!謝謝 – Hue