场景:我有一个数据框,其中包含从excel工作表中检索到的多个列。其中一些列是日期:有些列只有日期(yyyy:mm:dd),有些列有日期和时间戳(yyyy:mm:dd 00.00.000000)。
问题:如何从不是我的数据框索引的日期中删除时间戳?
我已尝试过的内容:在SO(working with dates in pandas - remove unseen characters in datetime and convert to string和How 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'))
但是,当它不是我的数据帧的索引时,我似乎找不到直接将它们用于所需列的方法。
答案 0 :(得分:12)
您可以执行以下操作:
dfST['timestamp'] = pd.to_datetime(dfST['timestamp'])
to_datetime()
将推断日期列的格式。如果列包含非日期值,您也可以传递errors='coerce'
。
完成上述操作后,您将能够创建仅包含日期值的新列:
dfST['new_date_column'] = dfST['timestamp'].dt.date