簡體   English   中英

如何將熊貓數據幀一行一行地寫入CSV文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM