如何根据同一数据框其他列中的值过滤熊猫数据框中的结果?

时间:2020-08-31 06:28:03

标签: python pandas

我有一个包含以下信息的数据框。

enter image description here

我需要根据条件过滤数据框-如果'dob'大于'justdate'且小于'testdate'。因此,结果数据帧将只有一行-[1,naomi,jang,27,10-19-1992,04-05-1990,04-05-2016],因为它介于两个日期之间,即“ justdate”和“ testdate”。

我要使用的代码:

filter1 = my_df.loc[my_df['dob'] > my_df['justdate']]
filter2 = my_df.loc[my_df['dob'] < my_df['testdate']]

my_df.where(filter1 & filter2, inplace = True)

但是,我遇到了错误-“ TypeError:&:'str'和'str'不受支持的操作数类型”

预先感谢:)

1 个答案:

答案 0 :(得分:2)

您可以使用Series.between并按boolean indexing进行过滤:

(define (square x)
  (cond ((number? x) (* x x))
        (else
         (display "invalid_input\n"))))

您的解决方案可以按条件和链条进行更改,并可以按df = my_df[my_df['dob'].between(my_df['justdate'], my_df['testdate'], inclusive=False)] 进行过滤:

boolean indexing