python - 如何将 pandas 数据帧逐行写入 CSV 文件,一次一行?

标签 python pandas read-write writetofile

我有一个包含大约 100 万个地址的列表,以及一个查找它们的纬度和经度的函数。由于某些记录格式不正确(或出于任何原因),有时该函数无法返回某些地址的纬度和经度。这将导致 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')

关于python - 如何将 pandas 数据帧逐行写入 CSV 文件,一次一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51296758/

相关文章:

c++ - 通过 QTextStream 重复写入和读取 QBuffer

python - 使用 scipy least_squares 时出现 ValueError

python - 有没有办法在 Python 中进行并行分析?

python - 使用非连接图或工具 Python 的车辆路径问题

python - 按列对 csv 进行排序时出错

python - 无法使用 Seaborn 进行绘图

python - 检测 matplotlib 刻度标签何时重叠

Python Pandas 聚合文本字段中的空格分隔值

java - 使用java和mysql服务器的读/写模式

Linux Web 服务器并发文件处理(读/写)