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

时间:2016-11-11 02:46:29

标签: python csv pandas dataframe

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

创建csv文件中的字典
 with open('us_db.csv', 'rb') as f:
    data = csv.reader(f)
    for row in data:
       Create Dictionary based on a column

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

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

2 个答案:

答案 0 :(得分:2)

你可以这样做..

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

答案 1 :(得分:0)

为什么不将“创建字典”功能应用于目标列? 类似的东西:

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