Определите строки в DataFrame Python, которые равны ... - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть большой DataFrame (называемый AllDTrades) с большим количеством сделок с ценными бумагами, как этот:

    trd_exctn_dt    ascii_rptd_vol_tx   rptd_pr    yld_pt       sttl_dt
1   2018-07-02      150000.0            98.6100    4.476914     7/5/2018 
....

Теперь мне нужно найти функцию, которая может сказать мне, сколько раз конкретная сделка находится в DataFrame и где в DataFrame. Так что мне нужно спросить что-то вроде этого (это, конечно, не работает):

AllDTrades.loc[AllDTrades==SpecificTrade], 

, где

SpecificTrade - это сделка, скажем так:

2018-07-02      150000.0            98.6100    4.476914     7/5/2018

Итак, мне нужно узнать, если SpecificTrade 1) является частью AllDTrades 2) местонахождение сделки в AllDTrades 3) также, если в AllDTrades есть более одной сделки, например SpecificTrade, мне нужно знать, где все они расположены в AllDTrades

Это возможно?

Большое спасибо заранее.

Ура, Джеспер.

1 Ответ

0 голосов
/ 03 ноября 2018

Вы можете использовать merge с reset_index для столбца index значений индексов AllDTrades с такими же значениями, как SpecificTrade, также если нет параметров on объединяет все столбцы:

print (AllDTrades)
  trd_exctn_dt  ascii_rptd_vol_tx  rptd_pr    yld_pt   sttl_dt
1   2018-07-02           150000.0    98.61  4.476914  7/5/2018
2   2018-07-03           290000.0    98.61  4.476914  7/5/2018
3   2018-07-02           150000.0    98.61  4.476914  7/5/2018


SpecificTrade = AllDTrades.iloc[[0]]
print (SpecificTrade)
 trd_exctn_dt  ascii_rptd_vol_tx  rptd_pr    yld_pt   sttl_dt
1   2018-07-02           150000.0    98.61  4.476914  7/5/2018

df = AllDTrades.reset_index().merge(SpecificTrade)
print (df)
   index trd_exctn_dt  ascii_rptd_vol_tx  rptd_pr    yld_pt   sttl_dt
0      1   2018-07-02           150000.0    98.61  4.476914  7/5/2018
1      3   2018-07-02           150000.0    98.61  4.476914  7/5/2018

vals = df['index']
print (vals)
0    1
1    3
Name: index, dtype: int64

print (AllDTrades.loc[vals])
  trd_exctn_dt  ascii_rptd_vol_tx  rptd_pr    yld_pt   sttl_dt
1   2018-07-02           150000.0    98.61  4.476914  7/5/2018
3   2018-07-02           150000.0    98.61  4.476914  7/5/2018
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...