熊猫转换日期格式并减去以天为单位的时间

时间:2018-08-13 13:48:24

标签: python pandas datetime format

我有一个数据帧,其中包含以点号格式(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。如何解决此问题?

1 个答案:

答案 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

`