KeyError: отметка времени при преобразовании даты в столбце в дату - PullRequest
0 голосов
/ 22 января 2019

Попытка преобразовать дату (тип = дата-время) полного столбца в дату для использования в условии позже.Появляется следующая ошибка:

KeyError: Timestamp ('2010-05-04 10:15:55')

Пробовал несколько вещей, но я сейчасзастрял с кодом ниже.

for d in df.column:
    pd.to_datetime(df.column[d]).apply(lambda x: x.date())

Кроме того, как мне отформатировать столбец, чтобы я мог использовать его в выражении следующим образом:

df = df[df.column > 2015-05-28]

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Просто добавив ответ на случай, если кто-то еще окажется здесь:

во-первых, давайте создадим фрейм данных с некоторыми датами, изменим dtype в строку и преобразуем его обратно.Аргумент errors = 'ignore' будет игнорировать любые значения времени без даты в вашем столбце, поэтому, если бы в строке x был Джон Смит, он остался бы в том же духе, если вы изменили error = 'coerce', это изменило бы John Smith наNaT (не значение времени)

# Create date range with frequency of a day
rng = pd.date_range(start='01/01/18', end ='01/01/19',freq='D')
#pass this into a dataframe
df = pd.DataFrame({'Date' : rng})
print(df.dtypes)
Date    datetime64[ns]
#okay lets case this into a str so we can convert it back
df['Date'] = df['Date'].astype(str)
print(df.dtypes)
Date    object
# now lets convert it back #
df['Date'] = pd.to_datetime(df.Date,errors='ignore')
print(df.dtypes)
Date    datetime64[ns]
# Okay lets slice the data frame for your desired date ##
print(df.loc[df.Date > '2018-12-29'))


 Date
363 2018-12-30
364 2018-12-31
365 2019-01-01
0 голосов
/ 22 января 2019

Ответ предоставлен @Datanovice:

pd.to_datetime(df['your column'],errors='ignore') 

затем проверьте dtype, это должно быть datetime, если так, просто выполните

df.loc[df.['your column'] > 'your-date' ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...