首页 文章

Pandas转换日期格式并减去时间以获取时间[重复]

提问于
浏览
0

这个问题在这里已有答案:

我有一个数据框,其中包含以点格式(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(列)时,我得到以下内容:

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

  • 1

    你可以使用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
    

    编辑:如果前两位是日,您可以添加dayfirst选项:

    df['New_date'] = pd.to_datetime(df.D,dayfirst=True)
    

    `

相关问题