我有一个包含以下信息的数据框。
我需要根据条件过滤数据框-如果'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'不受支持的操作数类型”
预先感谢:)
答案 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