我有一本字典d = {nam:name,lin:link}
我的数据框有以下列名:
nam1 nam2 nam3 nam_4 nam_5 lin1 lin2
如何用字典值替换dataframe的列名?
由于
答案 0 :(得分:0)
使用Series.replace
,因此请先转换index
to_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: []