python提高for循环速度_如何在Python中改善此循环以提高速度

我正在读取来自Police.uk API的数据作为JSON文件,然后遍历该文件以将数据传递到pandas数据帧中.

我用来从JSON提取并放入DataFrame的循环进行得非常缓慢.

警察API仅允许您一次一个月下载数据.因此,我使用日期列表和循环来下载一个月以上的数据.

代码如下.有什么方法可以改善此循环以使其运行更快?我想从API下载更多数据.

import pandas as pd

import numpy as np

import requests

import json

import matplotlib.pyplot as plt

import datetime

%matplotlib inline

plt.rcParams['figure.figsize'] = (10, 5)

#Create list of periods to download data for

periods = ['2017-03', '2017-04', '2017-05', '2017-06']

#Create empty list to store retrieved JSON data

data = []

警察API URL

url = 'https://data.police.uk/api/crimes-street/all-crime'

循环下载数据并追加列表

for date in periods:

parameters = {'poly': '51.6,0.06:51.6,0.2:51.5,0.2:51.5,0.062', 'date': date}

#Query API for data

response = requests.get(url, params=parameters)

data += json.loads(response.content)

print(len(data))

创建空的数据框

df = pd.DataFrame()

=============================================

—这是运行很慢的部分—–

将JSON文件中的相关部分提取到Dataframe中

for i in range(len(data)):

df.loc[i, 'id'] = data[i]['id']

df.loc[i, 'category'] = data[i]['category']

df.loc[i, 'month'] = data[i]['month']

df.loc[i, 'latitude'] = data[i]['location']['latitude']

df.loc[i, 'longitude'] = data[i]['location']['longitude']

=============================================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值