我已经使用read_csv导入了CSV文件。我感兴趣的CSV列中的原始数据以如下格式记录日期:
19/01/2012 9:00:00 AM
但是,导入数据时,其显示为:
2005-03-21 10:30:00
不确定为什么会这样。最终,我对提取日期(19/01/2012)感兴趣,并用它来计算与该列中最早日期的天数差。 ....
df['date_column'] = (df['date_column'] - df['date_column'].min())
首先,我尝试了几件事:
df['date_column'] = pd.to_datetime(df['date_column'], dayfirst=True)
这将返回与上面所示相同的日期格式。即2005-03-21 10:30:00
第二次尝试是
df['date_column'] = pd.to_datetime(df['date_column'], format ='%d-%m-%y %I:%M:%S %p')
这给了我错误
ValueError:时间数据'2004-03-16 11:40:00'与格式'%d-%m-%y%I:%M:%S%p'(匹配)不匹配
我已经尝试了一些以上的细微变化。我正在使用运行Python 3.7.1的Jupyter v 5.7.4
一定会感谢您的任何建议/帮助!谢谢。
答案 0 :(得分:0)
我认为orders.get(Product)
中的read_csv
列已转换为日期时间,因此不必转换为日期。
如果减去最小值,将获得timedelta,格式不同:
date_column
如果您使用原始格式的日期时间,请使用Series.dt.strftime
:
rng = pd.date_range('2017-04-03 15:12:10', periods=10, freq='23Min')
df = pd.DataFrame({'date_column': rng})
df['diff'] = (df['date_column'] - df['date_column'].min())
答案 1 :(得分:0)
我认为只有将日期转换为日期才能计算出日差:
import datetime as dt
df['date_column'] = (df['date_column'] - df['date_column'].min()).dt.days