如何根据同一数据帧的其他列中的值筛选数据帧中的结果?

2024-05-15 23:17:57 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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:amp;:'str'和'str'的操作数类型不受支持”

提前感谢:)


Tags: 数据代码信息dfmy条件locstr
1条回答
网友
1楼 · 发布于 2024-05-15 23:17:57

您可以使用^{}并按^{}进行筛选:

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'])]

相关问题 更多 >