Я пытаюсь получить несколько столбцов данных из строки, если один из столбцов в строке равен сегодняшней дате - PullRequest
0 голосов
/ 28 апреля 2020
import pandas
import datetime
file = "BT_Schedule_04_27_2020_PM.xlsx"
df = pandas.read_excel(file, sheet_name="BT Schedule")
today = datetime.date.today()
ttudates = df["TTU Date"]
site = df["BLC ID"]


for date in ttudates:
    if date == today:
      print(date)

Итак, я получаю желаемую дату, которая равна 8 строкам из 5000. Я хочу иметь возможность просто получить всю строку с сегодняшней датой в указанном столбце c. Имейте в виду, что есть несколько столбцов с датами, поэтому я не могу просто взять строку, которая содержит эту дату.

enter image description here

1 Ответ

2 голосов
/ 28 апреля 2020

Как уже упоминалось, избегайте for зацикливания значений серии pandas для извлечения скалярных значений. Вместо этого запустите логический фильтр, чтобы получить подмножество строк со всеми столбцами.

Однако pandas datetime[64] (тип numpy) нельзя напрямую сравнивать с объектом даты и времени, таким как datetime.date.today(). Таким образом, ваши выходные данные представляют собой пустой фрейм данных, который выводит список столбцов в консоли.

Чтобы вернуть непустой фрейм данных, рассмотрите простые корректировки для правильного сравнения, используя Series.dt.date или strftime даты и времени :

sub_df = df[df["TTU Date"].dt.date = today]

sub_df = df[df["TTU Date"] = today.strftime('%Y-%m-%d %H:%M:%S')]

print(sub_df)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...