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,然后再次读取。但我想知道是否有办法跳过额外的文件读写。
你可以做这样的事情..
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)
归档时间: |
|
查看次数: |
5036 次 |
最近记录: |