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

Power BI中用Python Visualization批量识别含#N/A值的列

高效解决Power BI中多列CSV的缺失值列可视化问题

针对200列CSV文件需要展示存在#N/A值的列的需求,以下是三种高效替代方案,无需手动拖拽所有字段:

方案1:Power Query预处理生成统计结果

通过Power Query直接计算每列的#N/A数量,生成可直接可视化的统计表:

  • 打开Power Query编辑器,加载目标CSV表
  • 选中所有列(Ctrl+A),点击转换→转置
  • 点击将第一行用作标题,把原列名转为表头
  • 添加自定义列,输入公式:
    List.Count(List.Select([Column1], each _ is null or _ = "#N/A"))
    
  • 重命名列(比如"原列名"和"#N/A数量"),筛选出#N/A数量 > 0的行
  • 关闭并应用,回到Power BI后用柱状图/表格直接展示结果

方案2:DAX创建计算表统计缺失值

用DAX直接生成包含每列缺失值统计的计算表:

  1. 新建计算表,输入以下DAX公式(替换你的表名为实际表名):
    #N/A列统计 = 
    VAR 所有列 = ALLCOLUMNS('你的表名')
    RETURN
    ADDCOLUMNS(
        所有列,
        "#N/A数量", 
        COUNTROWS(FILTER('你的表名', ISBLANK([Value]) || [Value] = "#N/A"))
    )
    
  2. 基于这个计算表创建可视化,筛选#N/A数量 > 0的项即可

方案3:Python可视化直接读取整表(无需拖字段)

如果坚持用Python可视化,跳过手动拖字段步骤,直接读取整个表:

  1. 插入Python可视化(不拖任何字段到值区域)
  2. 修改脚本为以下内容(替换你的表名):
    import pandas as pd
    import matplotlib.pyplot as plt
    
    # 直接加载Power BI中的完整表
    df = pd.DataFrame(powerbi.extract_dataframe('你的表名'))
    
    # 计算每列的#N/A和空值总数
    na_stats = df.apply(lambda col: col.isna().sum() + (col == "#N/A").sum(), axis=0)
    # 过滤出存在#N/A的列
    na_stats = na_stats[na_stats > 0]
    
    # 绘制柱状图
    na_stats.plot(kind='bar', figsize=(12, 6))
    plt.title('各列#N/A值统计')
    plt.ylabel('数量')
    plt.xlabel('列名')
    plt.xticks(rotation=45, ha='right')
    plt.tight_layout()
    plt.show()
    
  3. 运行脚本即可自动生成统计图表

内容的提问来源于stack exchange,提问作者Diego Quirós

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 05:39:53