Не удается выбрать весь день из объекта DateTime в пандах DataFrame? - PullRequest
0 голосов
/ 06 июля 2019

У меня проблемы с выбором целого дня из столбца DateTime в моем фрейме данных.

Я изначально начал с даты и времени в отдельных столбцах, и было просто выбрать все строки, содержащие определенную дату. Один столбец DateTime показался более удобным, но я не смог выяснить, как выбрать все записи на определенную дату. Когда я не указываю время, я получаю пустой DataFrame.

#minimal example
import pandas as pd
df = pd.DataFrame({'date_time':['2019-01-01 00:00:00', '2019-01-01 00:00:00', '2019-01-01 00:30:00', '2019-01-01 01:00:00']})

Я могу выбрать определенное время без проблем:

df[df.date_time == '2019-01-01 00:00:00']

Но это дает пустой DataFrame:

df[df.date_time == '2019-01-01']

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

Ответы [ 2 ]

1 голос
/ 06 июля 2019
  1. Сначала преобразовать дату и время в дату
  2. Затем преобразовать ее в строку
df['date_time'] = pd.to_datetime(df['date_time']).dt.date.astype(str)
df[df['date_time'] == '2019-01-01']

0 голосов
/ 06 июля 2019

Ваш df имеет date_time как «объект». Сначала вы должны преобразовать его в date_time с помощью

df.date_time = pd.to_datetime(df.date_time)

Это поможет. Если вы попробуете сейчас:

df[df.date_time == '2019-01-01']

вы получите желаемый результат (отметьте; обратите внимание на 2 записи, поскольку они обе приходят в 00:00):

date_time
0   2019-01-01
1   2019-01-01

Однако, если вы хотите полностью игнорировать время, вы должны добавить это:

df.date_time = pd.to_datetime(df.date_time)
df['date'] = pd.to_datetime(df['date_time'].dt.date)
df[df.date == '2019-01-01']

, чтобы убедиться, что ваше время вышло, и только тогда выполните:

df[df.date == '2019-01-01']

и желаемый результат:

    date_time   date
0   2019-01-01  2019-01-01
1   2019-01-01  2019-01-01
2   2019-01-01  2019-01-01
3   2019-01-01  2019-01-01
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...