我有一个数据框,我想根据另一个打算用作字典的数据框重命名这些列。例如,我拥有的第一个数据框是:
AAA BBB CCC DDD
index
1 1 2 3 4
2 5 6 7 8
并作为第二个数据框,我想用作字典:
val1 val2
index
1 AAA A7
2 BBB B0
3 CCC C3
4 DDD D1
我想得到的结果如下:
A7 B0 C3 D1
index
1 1 2 3 4
2 5 6 7 8
最初,我想将第一个数据框重塑为长格式,然后与字典数据框合并,然后重塑为宽格式。但是我认为这效率很低,因此我想使用一种更有效的方法(如果存在)。非常感谢您的帮助。
我觉得你可以先创建dictionary
从df2
,然后创建Series
从列df1
由to_series
您再map
使用dictionary
:
print df1
AAA BBB CCC DDD
index
1 1 2 3 4
2 5 6 7 8
print df2
val1 val2
index
1 AAA A7
2 BBB B0
3 CCC C3
4 DDD D1
d = df2.set_index('val1').to_dict()
print d['val2']
{'AAA': 'A7', 'BBB': 'B0', 'CCC': 'C3', 'DDD': 'D1'}
df1.columns = df1.columns.to_series().map(d['val2'])
print df1
A7 B0 C3 D1
index
1 1 2 3 4
2 5 6 7 8
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句