如何直接在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
答
你为什么不应用到目标列创建字典功能? 类似于:
df['column_name'] = df['column_name'].apply(Create Dictionary)
+0
我需要整行在函数内部可用。一次只应用发送一个值。一次不是一行。谢谢。 – Raja
谢谢。这工作。当我使用python2.7时,我必须使用BytesIO而不是StringIO(),因为我在utf-8编码方面遇到了一些问题。 – Raja