You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas筛选0/1列、移除空列并清理缺失值

筛选CSV中仅含0/1的列并移除空列

以下是用Python pandas实现需求的步骤:

  1. 导入依赖库

    import pandas as pd
    
  2. 读取CSV文件
    替换'your_input.csv'为你的实际文件路径:

    df = pd.read_csv('your_input.csv')
    
  3. 移除全空列
    先删掉整列都是空值(NA/NaN/空字符串)的参数列:

    # 移除所有值都是空的列
    df = df.dropna(axis=1, how='all')
    
  4. 筛选仅含0和1的列
    定义一个辅助函数,判断列是否满足「无空值 + 仅包含0/1」的条件:

    def is_valid_binary_col(col):
        # 检查列是否存在任何空值
        if col.isna().any():
            return False
        # 检查列的所有唯一值是否仅为0和1(兼容字符串类型的'0'/'1')
        unique_values = col.unique()
        return set(unique_values).issubset({0, 1, '0', '1'})
    

    应用函数筛选目标列:

    # 筛选符合条件的列
    filtered_df = df.loc[:, df.apply(is_valid_binary_col)]
    

    如果你的数据里0/1是字符串类型,可以统一转为整数:

    filtered_df = filtered_df.astype(int)
    
  5. 查看或保存结果
    打印前几行验证:

    print(filtered_df.head())
    

    保存到新的CSV文件:

    filtered_df.to_csv('filtered_output.csv', index=False)
    

注意事项

  • 如果CSV里的空值是用特定字符串(比如'NA')表示的,读取时可以指定na_values参数:pd.read_csv('your_input.csv', na_values=['NA', ''])
  • 若数据量极大(10000列),可以考虑分块读取优化内存,但上述方法对于常规机器来说也能处理。

内容的提问来源于stack exchange,提问作者Muhammad Waqas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 06:36:35