对 Pandas 数据框的 Web 服务查询
Webservice Query to Pandas Dataframe
问题
我需要从此处托管的 Web 服务中提取信息
https://fogos.icnf.pt/localizador/webserviceocorrencias.asp
Web 服务接受各种查询,例如:
https://fogos.icnf.pt/localizador/webserviceocorrencias.asp?ano=2021&mes=5&distrito=faro
其中 ano
是年份,distrito
是地区
这将 return 法鲁区 2021 年的所有活动
如何将其导入 pandas 数据框?有什么想法吗?
提前致谢!
您可以解析 XML 并从 XML 个树元素创建 DataFrame:
import pandas as pd
import requests
import io
# get data
resp = requests.get(
'https://fogos.icnf.pt/localizador/webserviceocorrencias.asp?ano=2021&mes=5&distrito=faro')
# parse XML
et = ElementTree.parse(io.StringIO(resp.text))
# create DataFrame
df = pd.DataFrame([
{f.tag: f.text for f in e.findall('./')} for e in et.findall('./')]
)
df
输出:
DISTRITO TIPO ANO AREAPOV AREAMATO AREAAGRIC AREATOTAL \
0 Faro Agrícola 2021 0 0 0.0344 0.0344
1 Faro Florestal 2021 4 0.5 0 4.5
2 Faro Florestal 2021 0 0.026 0 0.026
3 Faro Florestal 2021 0 0.3577 0 0.3577
4 Faro Agrícola 2021 0 0 0.0919 0.0919
5 Faro Agrícola 2021 0 0 0.0794 0.0794
6 Faro Agrícola 2021 0 0 0.073 0.073
7 Faro Florestal 2021 0 0.0257 0 0.0257
8 Faro Florestal 2021 0 0.2447 0 0.2447
9 Faro Florestal 2021 0 0.0554 0 0.0554
10 Faro Agrícola 2021 0 0 0.003 0.003
...
问题
我需要从此处托管的 Web 服务中提取信息 https://fogos.icnf.pt/localizador/webserviceocorrencias.asp
Web 服务接受各种查询,例如: https://fogos.icnf.pt/localizador/webserviceocorrencias.asp?ano=2021&mes=5&distrito=faro
其中 ano
是年份,distrito
是地区
这将 return 法鲁区 2021 年的所有活动
如何将其导入 pandas 数据框?有什么想法吗?
提前致谢!
您可以解析 XML 并从 XML 个树元素创建 DataFrame:
import pandas as pd
import requests
import io
# get data
resp = requests.get(
'https://fogos.icnf.pt/localizador/webserviceocorrencias.asp?ano=2021&mes=5&distrito=faro')
# parse XML
et = ElementTree.parse(io.StringIO(resp.text))
# create DataFrame
df = pd.DataFrame([
{f.tag: f.text for f in e.findall('./')} for e in et.findall('./')]
)
df
输出:
DISTRITO TIPO ANO AREAPOV AREAMATO AREAAGRIC AREATOTAL \
0 Faro Agrícola 2021 0 0 0.0344 0.0344
1 Faro Florestal 2021 4 0.5 0 4.5
2 Faro Florestal 2021 0 0.026 0 0.026
3 Faro Florestal 2021 0 0.3577 0 0.3577
4 Faro Agrícola 2021 0 0 0.0919 0.0919
5 Faro Agrícola 2021 0 0 0.0794 0.0794
6 Faro Agrícola 2021 0 0 0.073 0.073
7 Faro Florestal 2021 0 0.0257 0 0.0257
8 Faro Florestal 2021 0 0.2447 0 0.2447
9 Faro Florestal 2021 0 0.0554 0 0.0554
10 Faro Agrícola 2021 0 0 0.003 0.003
...