开发者社区> 问答> 正文

将pandas datframe列转换为具有特定日期格式的日期类型?

这个问题不同于堆栈溢出中所有可用的问题和答案,因为我不想将数据类型更改为字符串以获得所需的输出。

我觉得这是最令人困惑的,无法找到解决我的问题的正确方法。我读了一个具有以下内容的Excel文件-

Date
9/20/2017 7:27:30 PM
9/20/2017 7:27:30 PM
11/21/2018 8:28:30 AM
7/18/2019 9:30:08 PM
.
.
.

我正在借助数据框从Excel工作表中获取此数据

df = pd.read_excel("data.xlsx")

首先,我想从此列中删除时间。我这样做是-

df['Date'] = pd.to_datetime(df['Date'])
df['Date'] = pd.to_datetime(df['Date'], errors='ignore', format='%d/%b/%Y').dt.date

它产生以下输出和数据类型为datetime.date

Date
20/9/2017 
20/9/2017 
21/11/2018 
18/7/2019 
.
.
.

但我希望将其作为以下类型而不将其更改为字符串。因为我想将此数据存储到另一个excel文件中,并且如果我们在excel工作表中应用过滤,则此列必须表现为日期列。

Date
20/Sep/2017
20/Sep/2017
21/Nov/2018
18/Jul/2019
.
.
.

我可以通过产生以上输出

df['Date'] = df['Date'].apply(lambda x: x.strftime('%d/%b/%Y'))

但是再次将这个日期列更改为字符串。但是我不希望它作为字符串。我希望它作为datetime类型,但不包括每个单元格中的时间值。将其从字符串转换为日期时间后,可能的解决方案如下,但它将再次在其中添加时间值-

df['Date'] = pd.to_datetime(df['Date'])

执行上述两个步骤后,还将包括时间12:00:00 AM或00:00:00 AM以及日期值。

希望我清楚。如何获得以最终列值作为日期类型的期望结果

展开
收起
几许相思几点泪 2019-12-05 15:41:33 814 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
中文:即学即用的Pandas入门与时间序列分析 立即下载
即学即用的Pandas入门与时间序列分析 立即下载
低代码开发师(初级)实战教程 立即下载