为了账号安全,请及时绑定邮箱和手机立即绑定

如何改善Python中的循环以提高速度

如何改善Python中的循环以提高速度

MM们 2021-05-31 04:56:44
我正在从Police.uk的API中读取数据作为JSON文件,然后遍历该文件以将数据传递到pandas数据帧中。我用来从JSON提取并放入DataFrame的循环进行得非常缓慢。警察API一次只允许您下载一个月的数据。因此,我使用了一个日期列表和一个循环来下载一个月以上的数据。代码如下。有什么办法可以改进这个循环,让它运行得更快吗?我想从API下载更多数据。import pandas as pdimport numpy as npimport requestsimport jsonimport matplotlib.pyplot as pltimport datetime%matplotlib inlineplt.rcParams['figure.figsize'] = (10, 5)#Create list of periods to download data forperiods = ['2017-03', '2017-04', '2017-05', '2017-06']#Create empty list to store retrieved JSON datadata = []警察 API 网址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']==============================================
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 147 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号