【问题标题】:Comparing dates of different formats between pandas dataframes比较熊猫数据框之间不同格式的日期
【发布时间】:2016-10-30 20:19:06
【问题描述】:
我有两个按日期索引的数据框,我需要比较日期 - 整理出与两个数据框不相互的所有日期条目。第一个数据帧的格式为:
2011-10-31
另一个有一些来自 pandas/python 的日期时间格式,当被调用时显示为:
2011-10-31T01:00:00.000000000+0100
显然,比较两者会返回错误/不相等。我想进行比较的最简单方法是减少后一种格式。我该怎么做?
【问题讨论】:
标签:
date
pandas
dataframe
format
【解决方案1】:
使用pandas.to_datetime,它将为您完成转换。
df1 = pd.DataFrame({'date':['2011-10-31', '2011-10-31', '2011-10-29'],'val':range(3)}).set_index('date')
df2 = pd.DataFrame({'date':['2011-10-31T01:00:00.000000000+0100',
'2011-10-31T00:00:00.000000000+0000',
'2011-10-29T11:00:00.000000000+0100'],'val':range(3)}).set_index('date')
测试对比:
df1.index==df2.index
# array([False, False, False], dtype=bool)
pd.to_datetime(df1.index)==pd.to_datetime(df2.index)
# array([ True, True, False], dtype=bool)