通过熊猫中的多个条件选择数据框行

问题描述

我可以根据某些条件从pandas df中选择行:

    cardio = df[df.indications == 'Cardiovascular / cardiology']
    end_aug = '2020-08-31'
    start_aug = '2020-08-01'

    mask = (df['date']>start_aug) & (df['date']<=end_aug)
    df = df.loc[mask,df['indications']]

但是我也想使用“ cardio”变量来缩小[indications]列中的选择范围,例如:

    df = df.loc[mask,df['indications']== 'Neoplasms / cancer / oncology']

但是上面的代码返回了一个错误:IndexingError:作为索引器提供了不可对齐的布尔系列(布尔系列和被索引对象的索引不匹配)。

在我的情况下,如何使用“ cardio”变量来使用面罩和其他选择?

解决方法

另一种解决方案:

searchfor = ['Neoplasms','cancer','oncology']
df = df[df['indications'].str.contains('|'.join(searchfor))]

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...