使用pandas过滤CSV:Impresiones_exchange列筛选异常及二次筛选需求
解决Pandas筛选CSV只生成布尔值列的问题
看起来你是把布尔筛选条件直接保存成文件了,这才导致新文件只有True/False列。咱们来修正这个操作,同时完成两列的筛选需求:
完整代码示例
import pandas as pd # 1. 读取原始CSV文件 df = pd.read_csv("你的原始文件名.csv") # 替换成你的实际文件名 # 2. 定义筛选条件:两列的值都大于10 filter_condition = (df["Impresiones_exchange"] > 10) & (df["eCPM_a_pagar_a_medio"] > 10) # 3. 用条件筛选原DataFrame,得到符合要求的数据 df_filtered = df[filter_condition] # 4. 将筛选后的完整数据保存到新文件 df_filtered.to_csv("ssss.csv", index=False) # index=False避免保存额外的索引列
为什么之前会出错?
你之前可能执行了类似这样的错误代码:
# 错误示例:直接保存布尔条件的结果,而不是筛选后的DataFrame (df["Impresiones_exchange"] > 10).to_csv("ssss.csv")
这行代码保存的是一个布尔值Series(只有一列),所以文件里全是True/False。正确的做法是用布尔条件去索引原DataFrame,再保存索引后的完整结果。
补充说明
- 如果只需要筛选其中一列,比如只保留
Impresiones_exchange>10的数据,只需要把filter_condition改成df["Impresiones_exchange"] > 10即可。 - 用
&表示逻辑“与”(同时满足两列条件),如果需要逻辑“或”(满足任意一列>10),可以换成|,记得每个条件都要加括号避免运算优先级问题。
内容的提问来源于stack exchange,提问作者Martin Bouhier
相关产品推荐
相关产品推荐

