我正在合并两个df,并希望在匹配后访问列的前n行。你知道吗
其中events_df['event']
和prices_df['date']
之间存在匹配
同时也是
events_df['ticker']
和prices_df['tic']
我想保留prices_df['price']
中匹配行之后和之后的前n个值
events_df
event ticker
0 01-01-2019 MSFT
1 12-12-2018 MSFT
2 12-11-2018 MSFT
3 02-03-2019 AAPL
4 12-12-2018 AAPL
5 12-11-2018 AAPL
6 01-01-2019 AAPL
prices_df
date tic price
0 01-01-2019 MSFT 1.0
1 02-01-2019 MSFT 1.1
2 03-01-2019 MSFT 1.2
3 04-01-2019 MSFT 1.3
4 05-01-2019 MSFT 1.4
5 01-01-2019 AAPL 2.0
6 02-01-2019 AAPL 2.1
7 03-01-2019 AAPL 2.2
8 04-01-2019 AAPL 2.3
9 05-01-2019 AAPL 2.4
我已经试过合并了
merged = events_df.merge(prices_df,left_on=['ticker','event'],right_on=['tic','date'])
n=4的预期输出(来自匹配events_df['events']
索引0,6)
date ticker price
0 01-01-2019 MSFT 1.0
1 02-01-2019 MSFT 1.1
2 03-01-2019 MSFT 1.2
3 04-01-2019 MSFT 1.3
4 01-01-2019 AAPL 2.0
5 02-01-2019 AAPL 2.1
6 03-01-2019 AAPL 2.2
7 04-01-2019 AAPL 2.3
你看起来很好。您只需要从中提取所需的列,因为在合并之后,它包含来自两个数据帧的所有列。所以:
然后必须对其进行过滤,使价格小于3(或者
n
,如果需要):用途:
相关问题 更多 >
编程相关推荐