如何使用Pandas筛选并显示PortalMammals_species.csv中taxa为Rodent的记录
筛选并显示Pandas中
taxa为"Rodent"的记录 你之前的代码其实只是生成了一个布尔掩码(用来标记每条记录是否符合条件),然后统计了符合/不符合条件的数量,但没有从原DataFrame里提取出这些符合条件的记录。下面是几种能实现你需求的方法:
方法1:布尔索引切片(最常用)
先创建布尔掩码,再用它筛选原DataFrame:
import pandas as pd # 读取你的CSV文件 df = pd.read_csv("PortalMammals_species.csv") # 创建布尔掩码:标记taxa等于"Rodent"的记录 mask = df["taxa"] == "Rodent" # 筛选符合条件的记录 rodent_records = df[mask] # 显示筛选出的所有记录 print(rodent_records) # 同时统计数量的话,可以这么写 print(f"taxa为Rodent的记录总数:{len(rodent_records)}")
嫌步骤多的话,也可以把掩码和筛选合并成一行:
rodent_records = df[df["taxa"] == "Rodent"]
方法2:使用df.query()方法
如果喜欢更贴近自然语言的语法,query方法会更简洁:
rodent_records = df.query('taxa == "Rodent"')
补充:查看统计数量的其他方式
除了len(rodent_records),你还可以用这些方式获取数量:
rodent_records.shape[0]:直接返回DataFrame的行数- 或者用你之前的掩码直接提取:
mask.value_counts()[True]
内容的提问来源于stack exchange,提问作者Muhammad Anas Jamshed
相关产品推荐
相关产品推荐

