我有下面的代碼,將資料從一個表格轉換為DataFrame。其中,我包括一列API網址 每一行的郵編。當讀取每個Json URL時,我需要回傳緯度和經度,但我只從最后一行獲得這些資料,而不是每一行。
import json
import pandas as pd
import psycopg2
import urllib.request
import requests
con_db = psycopg2.connect(host=''/span>, database=''/span>, user=''/span>, password=''/span>)
cursor = con.cursor()
cursor.execute("SELECT * FROM table WHERE district = 'Monjolos' limit 10" )
result = cursor.fetchall()
df = pd.DataFrame(result)
df.columns = [columns[0] for columns in cursor.description ]
url_api = 'https://cep.awesomeapi.com.br/json/'。
df['url_api'] = url_api df['zip_code']
for index, row in df.iterrows():
url = url_api row['url_api']
open_json = urllib.request.urlopen(url)
data = json.load(open_json.read())
df['coord'] = data['lat'] ' , ' data['lng']
print(df[['id', 'url_api', 'coord']] )
結果:
id url_api coord
0 3748 https://cep.awesomeapi.com.br/json/24722120 -22.8147264,-42.9442479
1 3859 https://cep.awesomeapi.com.br/json/24722610 -22.8147264, -42.94424792 3860 https://cep.awesomeapi.com.br/json/24722630 -22.8147264, -42.94424793 3863 https://cep.awesomeapi.com.br/json/24722670 -22.8147264, -42.94424794 3882 https://cep.awesomeapi.com.br/json/24723000 -22.8147264, -42.94424795 3883 https://cep.awesomeapi.com.br/json/24723002 -22.8147264, -42.94424796 3884 https://cep.awesomeapi.com.br/json/24723003 -22.8147264, -42.94424797 3885 https://cep.awesomeapi.com.br/json/24723004[/span> -22.8147264, -42.9442479[/span]
8 3886 https://cep.awesomeapi.com.br/json/24723005[/span> -22.8147264, -42.9442479[/span]
9 3887 https://cep.awesomeapi.com.br/json/24723006 -22.8147264, -42.9442479
程序結束,退出代碼0。
uj5u.com熱心網友回復:
for回圈的最后一行在每次迭代時為整個列賦值。使用loc為當前的索引賦值。
df. loc[index, 'coord'] = data['lat'] ' , ' data['lng']
uj5u.com熱心網友回復:
coord = [] for index, row in df.iterrows():
url = url_api row['url_api']
open_json = urllib.request.urlopen(url)
data = json.load(open_json.read())
coord.append(data['lat'] ', ' data['lng'] )
df['coord'] = coord
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/322786.html
標籤:
