在Python中比较数据框日期列值?

时间:2019-08-20 12:13:36

标签: python pandas dataframe

我想比较2个数据框之间的2个日期列。

我有df1和df2,并且如果df1中的日期> df2做一些事情。

但是当我尝试

if df1['date'] > df2['date']:
        print('some stuff')

它返回错误:

  

ValueError:只能比较标记相同的Series对象

检查两个df中的日期是否相同dtype = datetime64 [ns] 看起来像2019-01-10。

试图重置索引:

df1 = df1.reset_index(drop=True)
df2 = df2.reset_index(drop=True)

但这没有帮助

不知道为什么会这样:(

更新

我还尝试将df1中的最大日期设置为变量,并将df2 ['date']与它进行比较,但这会引发另一个错误

max_date_df1 = df1['date'].max()

df2['date'] > max_date_df1 
  

ValueError:系列的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。

1 个答案:

答案 0 :(得分:0)

似乎比较的值在一个数据帧的情况下不会改变,因为您尝试使用max_date。您可以尝试使用np.where,如下所示:

import numpy as np
max_date = df1['date'].max()
df2['new_field'] = np.where(df2['date'] < max_date, <Val if True>, <Val if False>)

让我知道我是否理解您的问题是错误的。