根据行和列名称中的值合并数据框

Merging data frames based on value in row and column name

我处理财务数据并尝试合并两个 pandas 数据框。

在第一个数据框中,我有公司名称、代码和日期的信息。

    Date       Ticker     Company
0   2020-01-15 CHR.CO     Chr. Hansen
1   2020-01-15 PNDORA.CO  Pandora A/S

在我的第二个 df 中,我有一个日期和某些给定日期的股票收盘价。

    Date        CHR.CO       COLO-B.CO  DANSKE.CO   PNDORA.CO   VWS.CO
0   2020-01-15  89.5         89.5        187.39      54.4       552.0
1   2020-01-16  90           88.0        184.61      55.2       550.0

如何合并这两个数据框,以便在第一个数据框中获得收盘价?

这是所需的输出:

Date       Ticker     Company         Close_price
0   2020-01-15 CHR.CO     Chr. Hansen 89.5
1   2020-01-15 PNDORA.CO  Pandora A/S 54.4

使用下面的行,我合并了日期的两个数据框,而且还获取了所有公司的所有代码和收盘价。

full = new_df.merge(stocks_close, on = "Date")

merge 之前添加 DataFrame.melt 并在参数 on:

中指定两列 ["Date",'Ticker']
df = stocks_close.melt(id_vars='Date', var_name='Ticker', value_name='Close_price')
full = new_df.merge(df, on = ["Date",'Ticker'])
print (full)
         Date     Ticker      Company  Close_price
0  2020-01-15     CHR.CO  Chr. Hansen         89.5
1  2020-01-15  PNDORA.CO  Pandora A/S         54.4