从pandas数据帧中的日期时间中删除时间戳

时间:2017-08-24 09:40:36

标签: python pandas datetime dataframe

场景:我有一个数据框,其中包含从excel工作表中检索到的多个列。其中一些列是日期:有些列只有日期(yyyy:mm:dd),有些列有日期和时间戳(yyyy:mm:dd 00.00.000000)。

问题:如何从不是我的数据框索引的日期中删除时间戳?

我已尝试过的内容:在SO(working with dates in pandas - remove unseen characters in datetime and convert to stringHow to strip a pandas datetime of date, hours and seconds)的其他帖子中,我发现:

pd.DatetimeIndex(dfST['timestamp']).date

strfitme (df['timestamp'].apply(lambda x: x.strftime('%Y-%m-%d'))

但是,当它不是我的数据帧的索引时,我似乎找不到直接将它们用于所需列的方法。

1 个答案:

答案 0 :(得分:12)

您可以执行以下操作:

dfST['timestamp'] = pd.to_datetime(dfST['timestamp'])

to_datetime()将推断日期列的格式。如果列包含非日期值,您也可以传递errors='coerce'

完成上述操作后,您将能够创建仅包含日期值的新列:

dfST['new_date_column'] = dfST['timestamp'].dt.date