CSV对Pandas框架的响应

a11xaf1n  于 11个月前  发布在  其他
关注(0)|答案(2)|浏览(121)

我有这个代码:

import requests
import json

import pandas as pd
import io

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

字符串
它返回一个响应:

print(response.text)
GENESIS-Tabelle: 45213-0005
Turnover from accommodation and food services: Germany,;;;;;;;;;;;;;
months, price types, original and adjusted data, economic;;;;;;;;;;;;;
activities;;;;;;;;;;;;;
Monthly statistics: accommodation a. food services;;;;;;;;;;;;;
Germany;;;;;;;;;;;;;
Turnover (2015=100);;;;;;;;;;;;;
;;Year;;;;;;;;;;;
;;2023;;;;;;;;;;;
;;Months;;;;;;;;;;;
;;January;February;March;April;May;June;July;August;September;October;November;December
WZ08-55 Accommodation;;;;;;;;;;;;;
at constant prices;BV4.1 trend;100.1;100.0;98.3;95.9;93.4;90.7;88.4;86.7;...;...;...;...
WZ08-551 Hotels and similar accommodation;;;;;;;;;;;;;
at constant prices;BV4.1 trend;100.6;100.5;98.8;96.4;93.9;91.2;88.9;87.3;...;...;...;...

我可以将其写入csv文件。但无法将其加载到pandas中。可以做哪些更改才能使其工作?

df = pd.read_csv(io.StringIO(response.text))


ParserError:错误标记数据。C错误:第3行中应有2个字段,看到4

yqyhoc1h

yqyhoc1h1#

您在response.text中拥有的数据的格式无法解析为csv文件。它的结构具有多个分隔符和不规则的换行符。数据似乎由分隔符分隔,并且某些行的字段比其他行多。
你将不得不做
df = pd.read_csv(io.StringIO(response.text),sep=';')
它应该可以工作,但是一旦它与上面的语句一起工作,你可能必须做一些更改,因为正如我提到的,你的数据结构不正确。

mklgxw1f

mklgxw1f2#

panda.read_csv使用“,”作为默认分隔符,因此它会根据“,"来拆分每一行。现在,您可以看到各行中逗号的数量不同,这使得解析器无法正确读取/拆分文件一种方法是使用不同的分隔符(这里,它可能是sep =“;”)。这样你就可以将文件加载到数据框中,然后操纵它来满足你的需求。

相关问题