繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM