如何使用另一个的值创建新的数据框

时间:2017-12-21 21:32:00

标签: python pandas

假设我有2个 pandas数据帧 s(符号随时间变化的一种映射货币以及货币随时间推移的其他映射值)我如何逐个值获得每个符号的值

sym = pd.DataFrame(data=[["USD","EUR"],["USD","CAD"]],columns=["FB", "SAP"])

fx = pd.DataFrame(data=[[1, 2, 3], [4, 5, 6]], columns = ["USD","EUR","CAD"])

获取

adj = pd.DataFrame(data=[[1, 2], [4, 6]], columns = ["FB", "SAP"])?

1 个答案:

答案 0 :(得分:2)

stack + lookup

dd=sym.stack().to_frame('value')
dd.loc[:,'value']=fx.lookup(dd.index.get_level_values(0),dd['value'])
dd
Out[973]: 
       value
0 FB       1
  SAP      2
1 FB       4
  SAP      6
dd.unstack()
Out[974]: 
  value    
     FB SAP
0     1   2
1     4   6