想不出一个方法来做这件事。Python、csv、Pandas

2024-04-25 04:18:13 发布

您现在位置:Python中文网/ 问答频道 /正文

好吧,我正在做一个股票数据的回溯测试,这里是我被难住的地方:

我有150个csv文件,每一个都包含股票寿命长度的每日股票数据。每种股票都有不同的开始日期。你知道吗

Date        Close       etc
2015-05-05   123.24

我想在某些日子检查某些情况。例如,2015年5月5日,150份文件中每只股票的收盘价是多少?然后采取一些措施,然后检查2015-05-06,等等。如何用所有这些csv文件逐行生成条件语句?地址:

if date in csv_file:
    return row in csv_file that has this date

我真的不知道该怎么做,我知道怎么用手来做,但那将是永远的一天,这就是电脑的用途。提前谢谢。你知道吗


Tags: 文件csv数据inclosedate地方etc
2条回答

@Alexender是对的,这并不是很多数据,将所有文件读入一个DataFrame可能是最简单的,但是当你的数据无法放入内存时,你可以使用^{}对数据进行操作,就像它被读入内存中的DataFrame。一个很好的特性是,它允许您将glob传递给read_csv(),这样您就可以一次操作多个csv文件。你知道吗

使用这种方法,您的代码将如下所示。你知道吗

import dask.dataframe as dd

ddf = dd.read_csv('/path/to/csvs/fname*glob.csv')
ddf[ddf.Date == some_date].compute()

dask的一个小缺点是,它不像pandas那样擅长推断类型,因此您可能必须将显式的dtype传递给read_csv()。你知道吗

150个文件包含了从开始到现在的每日价格(OHLC,volume,等等),实际上并不是那么多的数据。你知道吗

我会读取所有的csv文件,并将它们放入一个单独的数据框中,并根据日期和符号进行索引(假设符号在所有csv文件中都是唯一的)。一旦数据是这种平面格式,你可以重新安排它到你的心的内容。你知道吗

相关问题 更多 >