Выполнять операции над разными строками в мультииндексном DataFrame - PullRequest
0 голосов
/ 30 августа 2018

Учитывая, что у меня есть следующий MultiIndex Dataframe

                     date_a        date_b
index_a   index_b               
1          Foo     1/2/2018     1/1/2018
           Bar     1/3/2018     12/20/2017  
2          Foo     2/4/2018     3/6/2018
           Bar     2/2/2017     1/2/2017

Как сгенерировать серию, которая получает разность date_a от Foo и date_b от Bar, проиндексированного index_a

index_a   difference_of_a_and_b     
1          1:00:00  
2          2:00:00

Я нашел способ сделать это по каждому индексу:

df.loc[1,'Foo']['date_a'] - df.loc[1,'Bar']['date_b'] 

Теперь, как мне это сделать? Index_a

1 Ответ

0 голосов
/ 30 августа 2018

Используйте DataFrame.xs, чтобы нарезать уровни и вычесть:

(pd.to_datetime(df.xs('Foo', level=1)['date_a']) 
     - pd.to_datetime(df.xs('Bar', level=1)['date_b']))

index_a
1    13 days
2   398 days
dtype: timedelta64[ns]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...