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

Power BI中Python脚本导入数据报错:numpy.dtype大小不兼容

Power BI中Python脚本运行报错排查与解决

错误详情

运行Python脚本时触发如下错误:

Details: "ADO.NET: Python script error. <pi>Traceback (most recent call last):   File "C:\Users\####\PythonScriptWrapper_ddec053d-7bfc-4f27-8ea3-03d81d9a6c40\PythonScriptWrapper.PY", line 2, in <module>
    import os, pandas, matplotlib   File "C:\Users\####\anaconda3\lib\site-packages\pandas\__init__.py", line 22, in <module>
    from pandas.compat import (   File "C:\Users\####\anaconda3\lib\site-packages\pandas\compat\__init__.py", line 15, in <module>
    from pandas.compat.numpy import (   File "C:\Users\####\anaconda3\lib\site-packages\pandas\compat\numpy\__init__.py", line 7, in <module>
    from pandas.util.version import Version   File "C:\Users\####\anaconda3\lib\site-packages\pandas\util\__init__.py", line 1, in <module>
    from pandas.util._decorators import (  # noqa   File "C:\Users\####\anaconda3\lib\site-packages\pandas\util\_decorators.py", line 14, in <module>
    from pandas._libs.properties import cache_readonly  # noqa   File "C:\Users\####\anaconda3\lib\site-packages\pandas\_libs\__init__.py", line 13, in <module>
    from pandas._libs.interval import Interval   File "pandas\_libs\interval.pyx", line 1, in init pandas._libs.interval ValueError: numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject </pi>"

已尝试操作

  • 重新安装Numpy,但问题未解决

当前使用的Python脚本

import pandas as pd
from io import StringIO

data = """Exchange ID;ExchangeRate;Exchange Currency
1;1;USD
2;0,75;GBP
3;0,85;EUR
4;3,67;AED
5;1,3;AUD"""
df = pd.read_csv(StringIO(data), sep=';')

# Return the transformed dataframe
df

需求

  1. 修复上述报错,让脚本能在Power BI中正常运行
  2. 后续需处理3个本地xlsx文件

解决方案

1. 彻底解决numpy与pandas的二进制兼容问题

该错误源于numpy和pandas版本不匹配,导致编译后的二进制文件不兼容,仅重新安装numpy无法解决,需同步处理两者:

  • 卸载现有numpy和pandas:
    pip uninstall -y numpy pandas
    
    若使用conda环境:
    conda uninstall -y numpy pandas
    
  • 安装稳定兼容的版本组合(推荐匹配版本:pandas 1.5.x + numpy 1.21.x,可根据自身Python版本调整):
    pip install pandas==1.5.3 numpy==1.21.6
    
    若使用conda环境:
    conda install pandas=1.5.3 numpy=1.21.6
    

2. 确认Power BI使用的Python环境

Power BI可能默认调用系统Python而非Anaconda环境,需手动指定:

  • 打开Power BI → 文件 → 选项和设置 → 选项 → Python脚本
  • 选择Anaconda的Python.exe路径(示例:C:\Users\####\anaconda3\python.exe)
  • 重启Power BI后重新运行脚本

3. 扩展脚本处理xlsx文件

若需读取3个xlsx文件,可修改脚本如下(需先安装openpyxl依赖):

import pandas as pd
import glob

# 替换为你的xlsx文件所在目录
file_paths = glob.glob(r'C:\目标文件夹路径\*.xlsx')

# 批量读取并合并所有文件
df_list = []
for path in file_paths:
    # 根据实际情况调整sheet_name、header等参数
    df = pd.read_excel(path, sheet_name=0, engine='openpyxl')
    df_list.append(df)

merged_df = pd.concat(df_list, ignore_index=True)

# 返回合并后的数据集
merged_df

未安装openpyxl时,先执行pip install openpyxl完成依赖安装。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 04:00:19