如何使用Pandas按多个值筛选CSV文件
解决方法
直接使用Pandas的isin()方法就能实现高效的多值筛选,这是处理这类需求的标准方案,比循环或多个or语句简洁且性能优异。
修改后的代码如下:
import pandas as pd report = "file.csv" df = pd.read_csv(report, low_memory=False) departments = [104, 105, 106, 107] # 使用isin()筛选Department列值在列表中的行 df = df[df['Department'].isin(departments)] df.to_csv('file_filtered.csv')
补充说明
isin()会检查Department列的每个值是否存在于departments列表中,返回布尔序列,Pandas以此过滤DataFrame,保留结果为True的行。- 这种向量化操作经过内部优化,处理10-15个部门甚至更多值时,效率远高于循环或多个
or拼接的条件。 - 如果CSV中部门ID是字符串类型(比如存为"104"而非数字104),只需把
departments列表改为字符串元素即可,例如["104", "105", "106", "107"]。
内容的提问来源于stack exchange,提问作者Andrew Puetz
相关产品推荐
相关产品推荐

