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

如何将API返回的CSV文本数据转换为Pandas DataFrame

将API返回的CSV文本转换为Pandas DataFrame

你可以通过以下步骤把API返回的CSV文本直接转换成指定列名的Pandas DataFrame:

  1. 额外导入pandas和io模块(io用于将字符串模拟为文件对象)
  2. 用io.StringIO包裹API返回的文本数据,让pandas可以像读取本地CSV文件一样读取它
  3. 读取数据后调整列名至你需要的格式

完整修改后的代码

import requests
import json
import pandas as pd
import io

url = "https://statdb.luke.fi:443/PxWeb/api/v1/en/LUKE/02 Maatalous/04 Tuotanto/06 Lihantuotanto/02 Kuukausitilastot/02_Lihantuotanto_teurastamoissa_kk.px"

payload = json.dumps({
  "query": [
    {
      "code": "Muuttuja",
      "selection": {
        "filter": "item",
        "values": [
          "Lihantuotanto"
        ]
      }
    },
    {
      "code": "Laji",
      "selection": {
        "filter": "item",
        "values": [
          "Lehmät"
        ]
      }
    }
  ],
  "response": {
    "format": "csv"
  }
})
headers = {
  'Content-Type': 'application/json',
  'Cookie': 'rxid=710a361a-7044-494f-95b7-15261822712c'
}

response = requests.request("POST", url, headers=headers, data=payload)

# 将CSV文本转换为DataFrame
csv_data = io.StringIO(response.text)
# 读取CSV,若返回的CSV存在多行表头或格式异常,可添加header参数调整(如header=1)
df = pd.read_csv(csv_data)
# 重命名列至目标格式
df.columns = ["Month", "Variable", "Cows 7) 8)"]

# 查看转换后的DataFrame
print(df.head())

关键步骤说明

  • io.StringIO(response.text):把API返回的字符串转换成pandas可读取的类文件对象,省去写入本地文件再读取的步骤
  • pd.read_csv(csv_data):直接读取类文件对象中的CSV数据,若原CSV表头格式特殊,可通过header参数指定读取起始行
  • df.columns = [...]:强制将列名设置为你需要的格式,确保最终DataFrame符合需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 16:40:06