如何用Python的pandas提取单列中两个特定值并生成新DataFrame
提取Animal列为cat和dog的行的解决方法
你的原始代码用&(逻辑与)是错误的——同一行的Animal列不可能同时等于cat和dog,所以筛选结果为空。以下是两种正确的实现方式:
首先定义你的DataFrame:
import pandas as pd d = pd.DataFrame({'Animal':['cat', 'dog', 'bird', 'dog', 'bird', 'bird'],'Age':[1,3,5,3,4,2]})
方法1:用逻辑或运算符(|)
将逻辑与&替换为逻辑或|,表示满足任一条件即可:
filtered_df = d[(d['Animal'] == 'cat') | (d['Animal'] == 'dog')]
方法2:用isin()方法(更简洁)
当需要匹配多个值时,isin()是更高效的写法,直接传入目标值组成的列表:
filtered_df = d[d['Animal'].isin(['cat', 'dog'])]
执行后得到的筛选结果如下:
Animal Age 0 cat 1 1 dog 3 3 dog 3
内容的提问来源于stack exchange,提问作者jayden
相关产品推荐
相关产品推荐

