Вывести все события по дате pandas
Имеется таблица логов в формате csv,колонки date,user,event_type,parameter, дата указана по такому типу 2020-04-01_00:01:08, я хочу чтобы в выводе были все события начиная с 2020-04-18_00:00:16 по 2020-04-18_23:59:50
import pandas as pd
import numpy as np
df = pd.read_csv("log (1).csv")
df['date'] = pd.date_range('2020-04-01_00:01:08', periods=200, freq='D')
df = df.set_index(['date'])
print(df.loc['2020-04-18_00:00:16':'2020-04-18_23:59:50'])
при выполнении кода выдает ошибку could not convert string to Timestamp
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Подчёркивание между датой и временем Pandas не понимает. Если заменить его на пробел, то всё работает:
import pandas as pd
import numpy as np
df = pd.DataFrame()
df['date'] = pd.date_range('2020-04-01 00:01:08', periods=200, freq='D')
df = df.set_index(['date'])
print(df.loc['2020-04-18 00:00:16':'2020-04-18 23:59:50'])
Вывод:
Empty DataFrame
Columns: []
Index: [2020-04-18 00:01:08]
Если же у вас где-то в готовом файле есть такое подчёркивание, то его легко заменить и преобразовать таки строку в датувремя:
df = pd.DataFrame({'date': ['2020-04-18_00:00:16', '2020-04-18_23:59:50']})
df['date'] = pd.to_datetime(df['date'].str.replace('_', ' '))