仅从日期时间列熊猫中提取日期

时间:2020-01-12 17:31:24

标签: pandas datetime

我有如下所示的数据框

Date_Time             
2019-02-27 10:00:00
2019-08-07 20:23:00
2019-02-24 00:00:00

从上面我想只在新列中提取日期,如下所示。

预期输出:

Date_Time               Date
2019-02-27 10:00:00     2019-02-27
2019-08-07 20:23:00     2019-08-07
2019-02-24 00:00:00     2019-02-24

尝试以下代码

df['Date']  = pd.to_datetime(df['Date_Time'], format="%m/%d/%Y").dt.floor('D')

但未提供所需的输出

1 个答案:

答案 0 :(得分:1)

如果您将 Date_Time 列作为字符串,请从转换开始 到 datetime 类型:

df.Date_Time = pd.to_datetime(df.Date_Time)

然后运行:

df['Date'] = df.Date_Time.dt.date

其他解决方案几乎与您的解决方案相同,但格式如下 适合源数据的实际格式(年-月-日):

pd.to_datetime(df['Date_Time'], format='%Y-%m-%d').dt.floor('D')

甚至没有格式:

pd.to_datetime(df['Date_Time']).dt.floor('D')

警告:尽管两个变体都提供相同的打印输出,但是 实际结果有所不同,您可以检查运行情况,例如df.iloc[0,2]

  • 在第一种情况下,结果为 datetime.date(2019,2,27)(只是日期)。
  • 但是在第二种情况下结果是 Timestamp('2019-02-27 00:00:00') (带有“归零”时间部分的时间戳)。