在线下载CSV并转换为PDF格式

2024-09-30 10:29:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个在线下载的CSV文件。我想把它放到熊猫数据框里。数据来源是联邦储备银行,并使用通货膨胀数据(CPI)。我错过了一些能让这一切成功的东西

以下是要下载的URL:

s_url = https://fred.stlouisfed.org/graph/fredgraph.csv?cosd=1990-01-01&coed=2040-01-01&id=CPIAUCSL

我用这个URL阅读它:

response = urlopen(s_url).read()

这给了我类似这样的东西:

b'DATE,CPIAUCSL\n1990-01-01,127.5\n1990-02-01,128.0\n1990-03-01,128.6\n1990-04-01,128.9\n1990-05-01,129.1\n1990-06-01,129.9\n1990-07-01,130.5\n1990-08-01,131.6\n1990-09-01,132.5\n1990-10-01,133.4\n1990-11-01,133.7\n1990-12-01,134.2\n1991-01-01,134.7\n1991-02-01,134.8\n1991-03-01,134.8\n1991-04-01,135.1\n1991-05-01,135.6\n1991-06-01,136.0\n'

然后我试着把这个反应读给熊猫听:

df = pd.read_csv(response)

那不行。在这个过程中我遗漏了哪些步骤


Tags: 文件csv数据urlreadresponse来源银行
2条回答

似乎直接使用url作为df参数是可行的。你试过了吗

import pandas as pd 
s_url = 'https://fred.stlouisfed.org/graph/fredgraph.csv?cosd=1990-01-01&coed=2040-01-01&id=CPIAUCSL' 
df = pd.read_csv(s_url)

您可以使用stringIO从字符串中读取数据

data = b'DATE,CPIAUCSL\n1990-01-01,127.5\n1990-02-01,128.0\n1990-03-01,128.6\n1990-04-01,128.9\n1990-05-01,129.1\n1990-06-01,129.9\n1990-07-01,130.5\n1990-08-01,131.6\n1990-09-01,132.5\n1990-10-01,133.4\n1990-11-01,133.7\n1990-12-01,134.2\n1991-01-01,134.7\n1991-02-01,134.8\n1991-03-01,134.8\n1991-04-01,135.1\n1991-05-01,135.6\n1991-06-01,136.0\n'
from io import StringIO
import pandas as pd
data = data.decode('utf-8') #decode binary string to utf-8
df = pd.read_csv(StringIO(data)) #read the data
df

输出:

DATE    CPIAUCSL
0   1990-01-01  127.5
1   1990-02-01  128.0
2   1990-03-01  128.6
3   1990-04-01  128.9
4   1990-05-01  129.1
5   1990-06-01  129.9

相关问题 更多 >

    热门问题