У меня есть CSV дневных данных о температуре с 3 столбцами: даты, дневные максимальные температуры и дневные минимальные температуры.Я приложил это здесь, чтобы вы могли видеть, что я имею в виду.
Я пытаюсь разбить этот набор данных на меньшие наборы данных по 30-летним периодам.В течение первых нескольких лет Old.csv даты вводятся в формате ГГГГ-ММ-ДД, но затем переключаются на ДД / ММ / ГГ в 1900 году. После того, как этот формат даты переключает мой код для разделения лет, больше не работает.Вот что я использую:
df2 = pd.read_csv("Old.csv")
test = df2[
(pd.to_datetime(df2['Date']) >
pd.to_datetime('1897-01-01')) &
(pd.to_datetime(df2['Date']) <
pd.to_datetime('1899-12-31'))
]
, и это работает ... НО, когда я переключаюсь на 1900 и дальше, он останавливается.Так что этот не работает:
test = df2[
(pd.to_datetime(df2['Date']) >
pd.to_datetime('1900-01-01')) &
(pd.to_datetime(df2['Date']) <
pd.to_datetime('1905-12-31'))
]
Приведенный выше код дает мне пустой набор данных, несмотря на то, что он работал до 1900 года. Я предполагаю, что это какая-то проблема форматирования, но я подумал, что с помощью ".to_datetime"бы исправить это.Я также попробовал это:
df2['Date']=pd.to_datetime(df2['Date'])
, чтобы переформатировать весь список до того, как я запустил приведенный выше код, но он все еще не работал.Другая интересная вещь состоит в том, что у меня есть отдельный csv с датами, последовательно введенными как MM / DD / YY, и тот работает с кодом выше.Может ли это быть проблемой на рубеже веков?Кто-нибудь знает, как это исправить?