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

问题描述:

我有一个csv文件与数百万行。我用来创建一个字典出CSV文件这样如何直接在python中将Pandas Dataframe转换为csv阅读器?

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

现在来过滤一些条件我用熊猫据帧,因为它在这些操作超快速的行。我加载csv作为熊猫Dataframe做一些过滤。然后,我想继续进行上述操作。我想用大熊猫df.iterrows()df.itertuples()但它真的很慢。

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

你可以做这样的事情..

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 
+0

谢谢。这工作。当我使用python2.7时,我必须使用BytesIO而不是StringIO(),因为我在utf-8编码方面遇到了一些问题。 – Raja

你为什么不应用到目标列创建字典功能? 类似于:

df['column_name'] = df['column_name'].apply(Create Dictionary) 
+0

我需要整行在函数内部可用。一次只应用发送一个值。一次不是一行。谢谢。 – Raja