首页 > 解决方案 > 在读取到 Pandas 系列的 .read_csv 期间集成 if 条件

问题描述

def dataDownSampled(data,resolution,startDate):
    parser = lambda date: pd.datetime.strptime(date, '%Y-%m-%d %H:%M:%S')
    series = pd.read_csv(data, sep = ';', header=0, parse_dates=[0], index_col=0, 
    squeeze=True,date_parser=parser)
    downsampled = series.resample(resolution)
    mean = downsampled.mean()
    return mean
    #mean.to_csv(filename+'.csv',sep=';')

上面的函数读取一个“数据”文件。此文件的第一列包含时间。解析器功能将其以确切的格式放置。此列可能包含比定义“dataDownSampled”的参数附带的参数“startDate”更早的日期。

是否可以在函数 .read_csv 中集成一个条件,以便它弹出所有小于“startDate”的日期?

标签: pythonpandas

解决方案


您不需要在read_csv函数中添加条件。相反,在您的 read_csv 运行并创建您的数据框之后,您可以使用dates > start_date. 像这样:

假设这是您的数据框:

In [156]: df                                                                                                                                                                                                
Out[156]: 
        date
0 1973-08-31
1 2017-11-17
2 2009-02-13
3 2018-07-03

In [162]: start_date = '2010-01-01'
In [163]: df[df['date'] > start_date]                                                                                                                                                                       
Out[164]: 
        date
1 2017-11-17
3 2018-07-03

推荐阅读