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直接生成包含每列缺失值统计的计算表:
- 新建计算表,输入以下DAX公式(替换
你的表名为实际表名):#N/A列统计 = VAR 所有列 = ALLCOLUMNS('你的表名') RETURN ADDCOLUMNS( 所有列, "#N/A数量", COUNTROWS(FILTER('你的表名', ISBLANK([Value]) || [Value] = "#N/A")) ) - 基于这个计算表创建可视化,筛选
#N/A数量 > 0的项即可
方案3:Python可视化直接读取整表(无需拖字段)
如果坚持用Python可视化,跳过手动拖字段步骤,直接读取整个表:
- 插入Python可视化(不拖任何字段到值区域)
- 修改脚本为以下内容(替换
你的表名):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() - 运行脚本即可自动生成统计图表
内容的提问来源于stack exchange,提问作者Diego Quirós
相关产品推荐
相关产品推荐

