如何附加新的数据行并根据新数据计算移动平均值

时间:2019-06-07 17:51:07

标签: python-3.x pandas dataframe

我正在使用熊猫来获取一些股票数据,并试图跟踪2天移动平均线和19天移动平均线,并检查它们是否相互交叉。

问题是 如何仅在csv文件没有的地方附加新检索到的数据?如何只计算那几天的移动平均线? 如何检查新的移动平均线是否相互交叉传递?

我要这样做的原因是我不想让我的程序再次遍历整个数据集,这可能会花费很多时间。而且我只关心新数据。

我一直在谷歌搜索,但是我只看到人们下载整个数据集,而不仅仅是下载新数据。

我有一个比较新数据和csv文件中数据时间的想法,一旦匹配则停止追加。

但是,熊猫的滚动方法会遍历整个数据集,我找不到只对新添加的数据进行计算的方法或配置。

由于上述原因,我看不到新的移动平均线是否相互交叉。

import datetime as dt
import pandas as pd
import pandas_datareader.data as web


start = dt.datetime(2000, 1, 1)
end = dt.datetime.now()

# get data frame
# DataReader(ticker,wherefrom,starttime,endtime)
df = web.DataReader('TSLA', 'yahoo', start, end)

# convert data frame to csv
df.to_csv('tsla.csv')

# read .csv file in
df = pd.read_csv('tsla.csv', parse_dates=True, index_col=0)  # set to use dates and take away the index colume

# moving average
df['2ma'] = df['Adj Close'].rolling(window=2,min_periods=0).mean() 
df['19ma'] = df['Adj Close'].rolling(window=19,min_periods=0).mean()

# write back to the csv file
df.to_csv('tsla.csv')

最终目标是仅对新库存数据执行操作。

预期结果:

比方说,我有一些新的股票数据(当股市关闭或几天之内csv文件没有更新时),我想将新数据附加到csv文件中,计算2天和19天新数据的移动均线,也将它们附加到csv文件中,并检查最新移动均线是否相互交叉传递。

0 个答案:

没有答案