Zakładając, że mam 2 ramka danych pands (jedna waluty mapowania dla symboli w czasie i inne wartości mapowania dla walut w czasie) jak mogę z czasem uzyskać wartość według symbolu?
sym = pd.DataFrame(data=[["USD","EUR"],["USD","CAD"]],columns=["FB", "SAP"])
i
fx = pd.DataFrame(data=[[1, 2, 3], [4, 5, 6]], columns = ["USD","EUR","CAD"])
dostać
adj = pd.DataFrame(data=[[1, 2], [4, 6]], columns = ["FB", "SAP"])?
Odpowiedzi:
2 dla odpowiedzi № 1stack
+ 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