我有一个数据帧,其中包含以点号格式(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。如何解决此问题?
答案 0 :(得分:1)
您可以使用to_datetime转换它们
sudo apt-get install python3-dev
编辑: 如果前两位数字是日期,则可以添加dayfirst选项:
import pandas as pd
df = pd.DataFrame({'D' : ['31.07.2018','30.03.2017']})
df['New_date'] = pd.to_datetime(df.D)
df
`