Python Dataframe Masking - PullRequest
       2

Python Dataframe Masking

0 голосов
/ 13 мая 2019

Привет. Помогите, пожалуйста, с вопросом о фрейме данных.

Я пытаюсь выбрать датированные строки из фрейма данных и для оператора with, как показано ниже.

Что я делаю не так?

startDate = '2019-01-01 00:00:00'
endDate = '2019-01-31 00:00:00'

mask = (df['date'] <= endDate) & (df['date'] >= starDate)

когда я печатаю df.loc [mask] Он не включает endDate, даже если я говорю <=.И да .. это в наборе данных. </p>

Ответы [ 2 ]

0 голосов
/ 13 мая 2019

попробовать:

 mask = df.date.isin(pd.date_range(start='2019-01-01 00:00:00', end='2019-01-31 00:00:00'))

или

mask = df.date.isin(pd.date_range(start=startDate, end=endDate))

который превосходит:

Out[73]:
2018-03-31    False
2018-04-30    False
2018-05-31    False
2018-06-30    False
2018-07-31    False
2018-08-31    False
2018-09-30    False
2018-10-31    False
2018-11-30    False
2018-12-31    False
2019-01-31     True
2019-02-28    False
2019-03-31    False
2019-04-30    False
Freq: M, Name: date, dtype: bool
0 голосов
/ 13 мая 2019

Если вы хотите включить данные от 1/31, вам следует установить маску на последнюю секунду этого дня. Что-то вроде

endDate = '2019-01-31 23:59:59'

ИЛИ установить его равным началу следующего дня

endDate = '2019-02-01 00:00:00'

и измените маску на

mask = (df['date'] < endDate) & (df['date'] >= startDate)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...