我有一个销售数据如下的数据框:
bill_no,sale_date
1001,2018-12-11
1002,2018-12-15
1003,2018-12-14
1004,2018-12-14
1005,2018-12-17
我正在尝试过滤比当前日期大3天的bill_no。下面是我尝试过的:
today = datetime.date.today().isoformat()
today
以上返回2018-12-17
我正尝试用今天检查df ['sale_date']:
df['sale_date'] = (df['sale_date'] - today)
以上抛出错误
TypeError: unsupported operand type(s) for -: 'str' and 'str'
答案 0 :(得分:2)
您可以使用to_datetime
用Timestamp.normalize
将所有数据转换为日期时间:
today = pd.Timestamp.today().normalize()
print (today)
2018-12-17 00:00:00
df['sale_date'] = pd.to_datetime(df['sale_date'])
df['sale_date'] = (df['sale_date'] - today)
print (df)
bill_no sale_date
0 1001 -6 days
1 1002 -2 days
2 1003 -3 days
3 1004 -3 days
4 1005 0 days