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

如何在python中直接将Pandas Dataframe转换为csv阅读器?,python,csv,pandas,dataframe,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作为数据帧进行一些过滤。然后我想继续做上面的工作。我曾想过使用pand

我有一个有数百万行的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作为数据帧进行一些过滤。然后我想继续做上面的工作。我曾想过使用pandasdf.iterrows()df.itertuples(),但速度非常慢


有没有办法将pandas dataframe直接转换为csv.reader(),这样我就可以继续使用上面的代码了。如果我使用
csv\u rows=to\u 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

你可以这样做

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

为什么不将createdictionary函数应用于目标列? 比如:

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

为什么不将createdictionary函数应用于目标列? 比如:

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

我需要整行在函数中可用。应用一次只发送一个值。一次不能排一行。谢谢。我需要整行在函数中可用。应用一次只发送一个值。一次不能排一行。谢谢,谢谢。成功了。当我使用python2.7时,我不得不使用BytesIO而不是StringIO(),因为我在utf-8编码方面遇到了一些问题。谢谢。成功了。当我使用python2.7时,我不得不使用BytesIO而不是StringIO(),因为我在utf-8编码方面遇到了一些问题。