按字典键搜索列并替换为字典值

时间:2017-10-04 06:15:09

标签: python pandas

我有一本字典d = {nam:name,lin:link}

我的数据框有以下列名:

nam1 nam2 nam3 nam_4 nam_5 lin1 lin2

如何用字典值替换dataframe的列名?

由于

1 个答案:

答案 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: []