基于两个不同DataFrame的比较的总和

时间:2018-11-20 11:28:44

标签: python pandas dataframe

我尝试检查一个df中的值是否在另一个df的两个值之间。如果是这样,则应将第一个df的值相加。

df1['MyNewCol'] = df2[(df2['date'] >= df1['Startdate']) and (df2['date'] <= df1['enddate'])].sum('values', axis = 1)

这是我的代码的样子,它将检查df2中提到的日期是否在开始日期和结束日期之间。如果是这样,它将打印值的总和。

我收到“只能比较标记相同的Series对象”错误。有没有简单的方法可以解决问题?

1 个答案:

答案 0 :(得分:0)

两个数据帧序列的大小不同以进行比较,或者索引不相似。因此,在这些情况下,运算符>=无法进行比较。

and是python运算符。您需要根据逻辑&

(df2['date'] >= df1['Startdate']) & (df2['date'] <= df1['enddate'])