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

Pandas报错:module 'pandas' has no attribute 'Dataframe' 求助

问题解决步骤

1. 修复DataFrame拼写错误

你代码里的pd.Dataframe是错误写法,Pandas中正确的类名是**pd.DataFrame**(注意最后一个字母为大写F),请确认代码中拼写完全符合这个格式。

2. 处理API返回数据的嵌套结构

Distance Matrix API返回的JSON存在多层嵌套,直接用from_dict转换会导致DataFrame结构混乱,需要先解析提取关键字段,再构建规整的表格数据。

3. 优化API请求的参数传递方式

直接拼接URL会因地址中的空格、特殊字符导致请求失败,改用requests.get的params参数可自动处理编码问题。

修正后的完整代码

import requests
import pandas as pd

origin = "Centro Hospitalar Universitário de São João, E. P. E"
destination = "Braga"
api_key = "你的API密钥"

# 使用params参数传递请求参数,自动处理特殊字符编码
params = {
    "origins": origin,
    "destinations": destination,
    "key": api_key
}
response = requests.get("https://api.distancematrix.ai/maps/api/distancematrix/json", params=params)

print(response.status_code)
data = response.json()

# 解析嵌套JSON,提取有用信息
parsed_data = []
origin_addr = data["origin_addresses"][0]
dest_addr = data["destination_addresses"][0]
for row in data["rows"]:
    for element in row["elements"]:
        parsed_data.append({
            "起点地址": origin_addr,
            "终点地址": dest_addr,
            "距离(米)": element["distance"]["value"],
            "距离描述": element["distance"]["text"],
            "时长(秒)": element["duration"]["value"],
            "时长描述": element["duration"]["text"],
            "状态": element["status"]
        })

# 构建DataFrame
df = pd.DataFrame(parsed_data)

# 导出到CSV(无需额外依赖)
df.to_csv("距离矩阵结果.csv", index=False, encoding="utf-8-sig")

# 导出到Excel(需先安装openpyxl:pip install openpyxl)
df.to_excel("距离矩阵结果.xlsx", index=False)

额外注意事项

  • 导出Excel前需安装依赖库,执行命令:pip install openpyxl
  • 确保API密钥有效且有足够调用额度
  • 若涉及多个起点/终点,需循环遍历origin_addresses和destination_addresses字段来匹配对应数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 11:35:29