如何直接在python中将Pandas Dataframe转换为csv阅读器?

Raj*_*aja 1 python csv dataframe pandas

我有一个包含数百万行的 csv 文件。我曾经用这样的 csv 文件创建一个字典

 with open('us_db.csv', 'rb') as f:
    data = csv.reader(f)
    for row in data:
       Create Dictionary based on a column
Run Code Online (Sandbox Code Playgroud)

现在根据某些条件过滤行,我使用 Pandas Dataframe,因为它在这些操作中速度非常快。我将 csv 加载为 Pandas Dataframe 做一些过滤。然后我想继续做上面的事情。我想过使用熊猫df.iterrows()df.itertuples()但它真的很慢。

有没有办法直接将pandas数据帧转换为csv.reader(),这样我就可以继续使用上面的代码了。如果我使用csv_rows = to_csv(),它会给出一个长字符串。当然,我可以写出一个csv,然后再次读取。但我想知道是否有办法跳过额外的文件读写。

Bob*_*ner 6

你可以做这样的事情..

import numpy as np
import pandas as pd
from io import StringIO
import csv

#random dataframe
df = pd.DataFrame(np.random.randn(3,4))

buffer = StringIO()  #creating an empty buffer
df.to_csv(buffer)  #filling that buffer
buffer.seek(0) #set to the start of the stream

for row in csv.reader(buffer):
    #do stuff
Run Code Online (Sandbox Code Playgroud)