我有一个大约 100 万个地址的列表,以及一个查找它们的纬度和经度的函数。由于某些记录的格式不正确(或出于任何原因),有时该函数无法返回某些地址的纬度和经度。这将导致 for 循环中断。因此,对于成功检索到纬度和经度的每个地址,我想将其写入输出 CSV 文件。或者,也许不用逐行写入,而是以小块大小写入也可以。为此,我正在使用df.to_csv
在“追加”模式下(mode='a'
) 如下所示:
for i in range(len(df)):
place = df['ADDRESS'][i]
try:
lat, lon, res = gmaps_geoencoder(place)
except:
pass
df['Lat'][i] = lat
df['Lon'][i] = lon
df['Result'][i] = res
df.to_csv(output_csv_file,
index=False,
header=False,
mode='a', #append data to csv file
chunksize=chunksize) #size of data to append for each loop
但问题是,它为每个附加打印整个数据帧。因此对于n
行,它将写入整个数据框n^2
次。如何解决这个问题?
如果你确实想逐行打印。 (你不应该)。
for i in range(len(df)):
df.loc[[i]].to_csv(output_csv_file,
index=False,
header=False,
mode='a')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)