[英]How to filter results in a pandas dataframe, based on the values in other columns of the same dataframe?
我有一个包含以下信息的数据框。
我需要根据条件过滤数据框 - 如果“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)
但是,我收到错误-“类型错误:& 不支持的操作数类型:‘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'])]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.