我有一个csv文件,其中包含我的投资组合信息(即最近20年购买的股票的记录)。文件大约有数百万条记录。我想编写一个读取此文件并返回过滤数据的python函数。
csv文件中的字段:
Stock Quantity Price PurchaseDate
查询能力示例:
问题:
通用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
答案 0 :(得分:2)
首先,将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)
还有许多其他方法可以实现此目的。玩转它,您就会了解。