使用其他数据框重命名pandas中的列

时间:2017-07-03 13:36:13

标签: pandas

假设我有4列数据框:

df = pd.DataFrame({'one': [1., 2., 3., 4.],
    'two': [4., 3., 2., 1.],
    'three': [4., 3., 2., 1.],
    'four': [4., 3., 2., 1.]})

并假设还有另一个数据框(2列): 第一列包含数据框df('one','two','three','four')列的名称,下一列包含名称,我要更改列名称df数据框。

我怎么能用一两行代码在pandas中做到这一点?

1 个答案:

答案 0 :(得分:2)

您需要rename dictSeries

print (df1)
       a  b
0    one  c
1    two  d
2  three  e
3   four  f

d = df1.set_index('a')['b'].to_dict()
#by Series
#d = df1.set_index('a')['b']
print (d)
{'four': 'f', 'two': 'd', 'three': 'e', 'one': 'c'}

df = pd.DataFrame({'one': [1., 2., 3., 4.],
    'two': [4., 3., 2., 1.],
    'three': [4., 3., 2., 1.],
    'four': [4., 3., 2., 1.]})
print (df)

df = df.rename(columns=d)
print (df)
     f    c    e    d
0  4.0  1.0  4.0  4.0
1  3.0  2.0  3.0  3.0
2  2.0  3.0  2.0  2.0
3  1.0  4.0  1.0  1.0