/ / Jak utworzyć nową ramkę danych przy użyciu wartości innej - python, pandy

Jak utworzyć nową ramkę danych za pomocą wartości innego - python, pandy

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 № 1

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