代码之家  ›  专栏  ›  技术社区  ›  Lokesh Agrawal

过滤存储在csv文件中的数据

  •  -2
  • Lokesh Agrawal  · 技术社区  · 7 年前

    csv文件中的字段:

    Stock Quantity Price PurchaseDate 
    

    1. 能够查询在给定期限内进行的采购。
    2. 能够查询特定股票的购买情况。

    问题:

    1. 搜索组合方法的签名是什么样子的?具体来说,用户将如何提供所有这些过滤信息?
    2. 应该使用哪种有效的数据结构从文件中读取和过滤这些信息?我应该读这篇文章还是使用类似Python的dicts?为什么是一个而不是另一个?

    我们非常欣赏通用API签名和实现思想。

    样本数据:

    MSFT,50,100,23/02/2018
    APPL,20,901,03/02/2010
    AMZN,50,210,02/11/2005
    MSFT,21,103,25/02/2015
    MSFT,54,101,14/06/2014
    AMZN,80,230,09/08/2009
    MSFT,35,100,13/09/2007
    GOOG,24,830,08/02/2006
    MSFT,45,102,18/07/2007
    GOOG,30,701,03/03/2006
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   Shiv Rajawat    7 年前

    首先,将数据从csv读取到数据帧。

    import pandas as pd
    # parse dates from column index 3: Purchasedate
    df=pd.read_csv('file_name.csv', parse_dates=True, index_col=3)
    

    print(df.loc['2010-07-01' : '2010-10-02'])
    

    同样,如果您希望在特定日期之前/之后获得数据,请使用

    print(df.loc['2010-07-01' : ])   ## All records after given date
    print(df.loc[ : '2010-10-02'])   ## All records before given date
    

    若您想根据某些条件过滤记录,只需迭代整个数据帧并使用条件语句过滤它们。

    for index, row in df.iterrows():
    if(row['Stock'] == 'MSFT'):
        print(row)
    

    或

    for index, row in df.iterrows():
    if(row['Price'] > 100):
        print(row)