所以我试图发送一个VIN的datframe到nhtsa的开源api并获取信息。下面用实际的vin替换df['vin']
。但是,当向函数中添加循环并尝试追加时,结果是返回一个空白数据帧,而不是12个左右VIN的信息。我做错什么了
代码如下:
import pandas as pd
import requests
#develop the data
z = pd.DataFrame(columns = ["vin"], data = ['LHJLC79U58B001633','SZC84294845693987','LFGTCKPA665700387','L8YTCKPV49Y010001',
'LJ4TCBPV27Y010217','LFGTCKPM481006270','LFGTCKPM581004253','LTBPN8J00DC003107',
'1A9LPEER3FC596536','1A9LREAR5FC596814','1A9LKEER2GC596611','1A9L0EAH9C596099',
'22A000018'])
z['manufacturer'] = ['A','A','A','A','B','B','B','B','B','C','C','D','D']
def nhtsa(df):
'''
sends VIN to NHTSA for data call
'''
for i in df:
url = 'https://vpic.nhtsa.dot.gov/api/vehicles/DecodeVINValuesBatch/'
post_fields = {'format': 'json', 'data': df['vin']};
r = requests.post(url, data=post_fields);
x = r.json()
f = pd.DataFrame(x['Results'])
g = f[['VIN','Make','Manufacturer','ManufacturerId','ManufacturerType', 'Model','ModelYear', 'ABS','VehicleType', 'BodyClass','DisplacementCC','ErrorCode', 'SuggestedVIN']]
csv = pd.DataFrame()
csv = csv.append(g, ignore_index = True)
return csv
nhtsa(z)
好的。所以,多亏了@G.Anderson,我才明白了这一点。首先,空数据帧应该在循环之外。接下来,正如G.Anderson所说的,i没有被叫出。我使用
.loc
语句来调用i
是什么。下面是代码相关问题 更多 >
编程相关推荐