我有一个数据框:
>>> g.head(15)
Out[13]:
Date S E code Last
0 2017-11-02 22500 2017-11-10 P 195.00
1 2017-11-02 22500 2017-11-10 C 175.00
2 2017-11-02 22375 2017-11-10 P 135.00
3 2017-11-02 22375 2017-11-10 C 245.00
4 2017-11-02 22625 2017-11-10 P 230.00
5 2017-11-02 22625 2017-11-10 C 125.00
6 2017-11-06 22500 2017-11-10 P 100.00
7 2017-11-06 22500 2017-11-10 C 180.00
8 2017-11-06 22375 2017-11-10 P 60.00
9 2017-11-06 22375 2017-11-10 C 270.00
10 2017-11-06 22625 2017-11-10 P 170.00
11 2017-11-06 22625 2017-11-10 C 120.00
12 2017-11-07 22500 2017-11-10 P 20.00
13 2017-11-07 22500 2017-11-10 C 495.00
14 2017-11-07 22375 2017-11-10 P 13.00
上述数据框在每个日期都有值。我有另一个数据框,其中包含来自上述DF的日期子集,但还有一个名为Q的列。
>>> g1
Out[18]:
Date S E code Last Q
0 2017-11-10 22500 2017-11-17 P 170.00 828.47
1 2017-11-10 22625 2017-11-17 P 180.00 646.91
2 2017-11-10 22750 2017-11-17 C 145.00 651.84
3 2017-11-17 22250 2017-11-24 P 165.00 707.57
4 2017-11-17 22375 2017-11-24 P 195.00 607.16
5 2017-11-17 22500 2017-11-24 C 175.00 666.56
6 2017-11-24 22375 2017-12-01 P 140.00 834.13
7 2017-11-24 22500 2017-12-01 P 185.00 763.76
8 2017-11-24 22625 2017-12-01 C 165.00 750.45
请注意,g每个日期有6个条目 - 每个S有3个不同的S值和2个不同的代码值,而g1只有3个(每个S只有一个代码)。
现在我想通过以下方式从这两个数据框中选择数据:
我决定首先进行合并/追加部分:
h = g.set_index(['Date','S','E','code'])
h1 = g1.set_index(['Date','S','E','code'])
f = h.merge(pd.DataFrame(h1['Q']), how= 'left',left_index= True, right_index= True )
f_final = f.reset_index()
现在我需要:
最好的方法是什么?我应该避免作为我在这里做的第一步吗?