Python KeyError:将列中的日期转换为日期时的时间戳

Python KeyError:将列中的日期转换为日期时的时间戳,python,pandas,dataframe,Python,Pandas,Dataframe,正在尝试将完整列的日期(type=datetime)转换为日期,以便稍后在条件中使用。以下错误不断出现: KeyError:时间戳('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-

正在尝试将完整列的日期(type=datetime)转换为日期,以便稍后在条件中使用。以下错误不断出现:

KeyError:时间戳('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]

@datanoveler提供的答案是:

pd.to_datetime(df['your column'],errors='ignore') 
然后检查数据类型,它应该是一个日期时间,如果是,就这样做

df.loc[df.['your column'] > 'your-date' ]

只需添加一个答案,以防其他人出现在这里:

首先,让我们创建一个包含一些日期的数据框,将数据类型更改为字符串并将其转换回。errors='ignore'参数将忽略列中的任何非日期时间值,因此,如果第x行中有John Smith,它将保持不变,同样,如果您更改errors='improve',它将John Smith更改为NaT(不是时间值)


试试这个,pd。要_datetime(df['your column'],errors='ignore'),然后检查数据类型它应该是datetime,如果是这样,只需执行df.loc[df.'your column']>'your date']您还可以通过将参数从errors='ignore'更改为'concure'将列中的非datetime值强制为NaT(不是时间值),谢谢@datanoveler!这就是解决办法!乐意帮忙:)
# 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