python - 熊猫转换日期格式并减去以天为单位获取时间
问题描述
我有一个数据框,其中包含点格式(31.07.2018)的开始日期和结束日期列,但我似乎无法正确地将其转换为破折号格式(2018-07-31)。
我尝试在加载 CSV 文件时解析日期,pd.to_datetime 和 df[col].dt.strftime() 但这些方法都没有给我需要的结果。
我怎样才能得到我需要的时间格式?以及如何减去日期以获得天数?
编辑:
示例日期列:
0 31.07.2018
1 07.08.2018
2 10.08.2018
3 02.08.2018
4 14.07.2018
5 03.08.2018
6 31.07.2018
7 11.08.2018
8 08.08.2018
9 08.08.2018
10 10.08.2018
11 20.07.2018
12 09.08.2018
13 20.07.2018
14 07.08.2018
15 07.08.2018
16 11.08.2018
17 11.08.2018
18 12.08.2018
当我尝试 pd.to_datetime(column) 时,我得到以下信息:
0 2018-07-31
1 2018-07-08
2 2018-10-08
3 2018-02-08
4 2018-07-14
5 2018-03-08
6 2018-07-31
7 2018-11-08
8 2018-08-08
9 2018-08-08
10 2018-10-08
11 2018-07-20
12 2018-09-08
13 2018-07-20
14 2018-07-08
15 2018-07-08
16 2018-11-08
17 2018-11-08
18 2018-12-08
如您所见,月份和日期混杂在一起,因为我知道月份只能是 07 和 08。我该如何解决这个问题?
解决方案
你可以用 to_datetime 转换它们
import pandas as pd
df = pd.DataFrame({'D' : ['31.07.2018','30.03.2017']})
df['New_date'] = pd.to_datetime(df.D)
df
编辑:如果前 2 位数字是日期,您可以添加 dayfirst 选项:
df['New_date'] = pd.to_datetime(df.D,dayfirst=True)
`
推荐阅读
- python - 调试从 Linux 中另一个 C++ 应用程序启动的 python 脚本
- c# - 如何从 OnAuthorization 访问 ClientCertificate
- delphi - THTTPRio TLS 1.2
- uml - 如何在系统序列图中表示 Webhook 事件?
- reactjs - React 在渲染中显示陈旧状态
- c# - ASP.NET Core 2.2 授权未授权
- c++ - 独立程序的多对一双向通信
- python - Django Count 和 Sum 注释相互干扰
- python - 在 discord.py 中添加反应时未发现 Emoji 错误
- javascript - 遇到两个孩子用相同的键,`[object Object]`