我正在处理一些大型CSV文件。基本上我在2009年和2010年有两个。我读过这两个是分别使用熊猫,然后将2010年文件追加到2009年数据帧的末尾。
要做到这一点,我使用函数:
def import_data():
with open(file_A, 'r') as f:
reader = pd.read_csv(f, sep=',', parse_dates=({'Date_Time': [0]}) )
with open (file_B, 'r') as B:
reader2= pd.read_csv(B, sep=',', parse_dates=({'Date_Time': [0]}))
reader=reader.append(reader2)
return reader
基本上,我会做一些处理,重新采样数据。但是,由于文件的长度,所有这些都需要很长时间。
有没有办法根据定义的输入选择某些行?例如只是日期01/10/2009 - 01/02/2010?日期都在csv的第一列。
我知道use_cols
pandas.read_csv
的列可以使用此功能
答案 0 :(得分:0)
你有没有尝试将它们变成迭代器?
from itertools import chain
def import_data():
with open(file_A, 'r') as f:
reader = pd.read_csv(f, sep=',', parse_dates=({'Date_Time': [0]}), iterator=True)
with open (file_B, 'r') as B:
reader2= pd.read_csv(B, sep=',', parse_dates=({'Date_Time': [0]}), iterator=True)
return chain(reader, reader2)
desired_range = [row for row in import_data() if row >= start_date and row <= end_date]