根据行和列名称中的值合并数据框
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
我处理财务数据并尝试合并两个 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