我有如下所示的数据框
Date_Time
2019-02-27 10:00:00
2019-08-07 20:23:00
2019-02-24 00:00:00
Run Code Online (Sandbox Code Playgroud)
从上面我想只在新列中提取日期,如下所示。
预期输出:
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
Run Code Online (Sandbox Code Playgroud)
尝试了下面的代码
df['Date'] = pd.to_datetime(df['Date_Time'], format="%m/%d/%Y").dt.floor('D')
Run Code Online (Sandbox Code Playgroud)
但没有提供所需的输出
如果您将Date_Time列作为字符串,请从将其转换为日期时间类型开始:
df.Date_Time = pd.to_datetime(df.Date_Time)
Run Code Online (Sandbox Code Playgroud)
然后运行:
df['Date'] = df.Date_Time.dt.date
Run Code Online (Sandbox Code Playgroud)
其他解决方案几乎与您的解决方案类似,但格式适合源数据的实际格式(年月日):
pd.to_datetime(df['Date_Time'], format='%Y-%m-%d').dt.floor('D')
Run Code Online (Sandbox Code Playgroud)
甚至没有格式:
pd.to_datetime(df['Date_Time']).dt.floor('D')
Run Code Online (Sandbox Code Playgroud)
注意:虽然两种变体给出相同的打印输出,但实际结果不同,您可以检查运行例如df.iloc[0,2].
| 归档时间: |
|
| 查看次数: |
10098 次 |
| 最近记录: |