首页 > 解决方案 > 在python中处理两位和四位数字年份的日期

问题描述

我有两个 DataFrame df:

 A                B
5/4/2018     8/4/2018 
24/5/15       26/5/15 
21/7/16       22/7/16 
3/7/2015     5/7/2015 
1/7/2016     1/7/2016 

我想计算每一行的天数差异。
例如:

A                B             C 
5/4/2018     8/4/2018          3 
24/5/15       26/5/15          2 

我尝试使用 pd.to_datetime 将数据帧转换为日期时间。但是,出现错误“ValueError:未转换的数据仍然存在:18”

尝试了以下代码:

import datetime as dt

df['A'] = pd.to_datetime(df['A'], format = "%d/%m/%y").datetime.datetime.strftime("%Y-%m-%d")

df['B'] = pd.to_datetime(df['B'], format = "%d/%m/%y").datetime.datetime.strftime("%Y-%m-%d")

df['C'] = (df['B'] - df['A']).dt.days

注意:使用 python 3.7

标签: python-3.xpandas

解决方案


Try:

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

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

df['C'] = (df['B'] - df['A']).dt.days

Output:

    A           B           C
0   2018-04-05  2018-04-08  3
1   2015-05-24  2015-05-26  2

推荐阅读