Pandas read_csv from url返回的行数较少

2024-09-30 12:34:18 发布

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

我使用pandas read_csv函数直接从url获取数据。这是密码

import pandas as pd
mosa_df = pd.read_csv("https://api.coronavirus.data.gov.uk/v2/data?areaType=msoa&metric=newCasesBySpecimenDateRollingSum&format=csv")
print(mosa_df.shape)

输出: (72019,11)

但是,如果您手动下载相同的csv,它将有210601条记录。pandas read_csv中的行数是否有任何限制?如果没有,如何获取所有行


Tags: csv函数httpsimportapiurl密码pandas
2条回答

熊猫似乎无法直接从URL读取(可能是服务器问题,服务器切断连接,熊猫无法重新连接)

一种解决方案是通过requests读取源代码,然后将其放入:

import requests
import pandas as pd
from io import StringIO


url = "https://api.coronavirus.data.gov.uk/v2/data?areaType=msoa&metric=newCasesBySpecimenDateRollingSum&format=csv"

data = StringIO(requests.get(url).text)
mosa_df = pd.read_csv(data)
print(mosa_df.shape)

印刷品:

(210785, 11)

我不是100%确定,但第72016行的url数据(当通过pandas读取时)或api在通过read_csv方法读取时返回72016行似乎存在一些问题

因为当我在读取csv时跳过10000行时,在输出中我只能读取62016行。
(如果read_csv有任何限制,那么我应该从10001行得到72016行)

urld = "https://api.coronavirus.data.gov.uk/v2/data?areaType=msoa&metric=newCasesBySpecimenDateRollingSum&format=csv"
url_c = pd.read_csv(urld, skiprows=10000, nrows=999999)

url_c.shape 
Output is (62016, 11)

类似地,当我阅读72015行时,我只能阅读一行

url_c = pd.read_csv(urld, skiprows=72015, nrows=999999)

url_c.shape
Output is (1, 11)

正如所料,当尝试从第72017行读取csv时,收到EmptyDataError

url_c = pd.read_csv(urld, skiprows=72017, nrows=999999)
EmptyDataError: No columns to parse from file

相关问题 更多 >

    热门问题