我有如下所示的数据框
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')
但未提供所需的输出
答案 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]
。