[英]How to write a pandas dataframe to CSV file line by line, one line at a time?
我有大約一百萬個地址的列表,以及一個查找其緯度和經度的函數。 由於某些記錄的格式不正確(或出於任何原因),因此有時該函數無法返回某些地址的緯度和經度。 這將導致for循環中斷。 因此,對於成功檢索到緯度和經度的每個地址,我想將其寫入輸出CSV文件。 或者,也許不是逐行寫入,而是以小塊大小寫入也可以。 為此,我在“追加”模式( mode='a'
)中使用df.to_csv
,如下所示:
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')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.