如何筛选不含特定值的行?能否在df.Number==后使用列表?
解决方案
当然可以用列表实现批量筛选,但你之前的写法有问题,"01"or"02"这种逻辑不成立,正确的实现方式是用pandas内置的isin()方法:
- 如果你的
Number列是数值类型,直接传入数值列表:
target_list = [1,2,3,4,5,6,7,8,9] df3 = df[df.Number.isin(target_list)]
- 如果你的
Number列是字符串类型(比如你示例里的"01"带前导零),要传入对应格式的字符串列表:
target_list = ["01","02","03","04","05","06","07","08","09"] df3 = df[df.Number.isin(target_list)]
补充说明:你之前尝试的df.Number == "01"or"02"写法错误,因为or两侧需要是完整的布尔判断,即便要这么写也得写成(df.Number == "01") | (df.Number == "02"),但当目标值较多时,显然用isin()更简洁高效。
内容的提问来源于stack exchange,提问作者David95
相关产品推荐
相关产品推荐

