我有一个包含以下信息的数据框。
我需要根据条件过滤数据框-如果'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'不受支持的操作数类型”
提前致谢 :)
您可以Series.between
通过boolean indexing
以下方式使用和过滤:
df = my_df[my_df['dob'].between(my_df['justdate'], my_df['testdate'], inclusive=False)]
您的解决方案可以通过条件和链的变化来更改boolean indexing
:
df = my_df[(my_df['dob'] > my_df['justdate']) & (my_df['dob'] < my_df['testdate'])]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句