如何处理“ TypeError:add_all_ta_features()为关键字参数'fillna'获得了多个值”?

时间:2019-04-26 18:26:16

标签: python dataframe

我正在关注此文档:https://buildmedia.readthedocs.org/media/pdf/technical-analysis-library-in-python/latest/technical-analysis-library-in-python.pdf

特别是PDF的第9页。复制此代码,我得到一个类型错误。我不确定这是否意味着应该编辑我的数据文件(仅是标准库存数据)或编辑代码的fillna部分。

from ta import *

df = pd.read_csv('VRAY.csv', sep=',')
df = utils.dropna(df)

df = add_all_ta_features(df,"Date","Open","High","Low","Close","Adj_Close","Volume", fillna=True)

这是错误:

回溯(最近通话最近):   在第7行的“ /home/toni/PycharmProjects/PyPractice/stockTA/techanal.py”文件中     df = add_all_ta_features(df,“ Date”,“ Open”,“ High”,“ Low”,“ Close”,“ Adj_Close”,“ Volume”,fillna = True) TypeError:add_all_ta_features()为关键字参数“ fillna”获得了多个值

3 个答案:

答案 0 :(得分:0)

ta模块的文档给出了调用add_all_ta_features()的示例:

add_all_ta_features(df, "Open", "High", "Low", "Close", "Volume_BTC", fillna=True)

该呼叫包括五列:

Open
High
Low
Close
Volume_BTC

但是您的通话有七列:

Date
Open
High
Low
Close
Adj_Close
Volume

您正尝试使用太多列。

答案 1 :(得分:0)

project repository中,add_all_ta_features()方法的签名是

def add_all_ta_features(df, open, high, low, close, volume, fillna=False, colprefix=""):

通过在调用中提供这么多参数,您正在为fillna分配一个值作为“ Adj_Close”。随后,您不能再提供另一个值作为关键字参数。

答案 2 :(得分:0)

您又添加了一个参数... 在编写额外的参数(9个参数)时,一个参数代替了“ fillna”的参数。 因此,当您使用fillna作为关键字参数(“ fillna =”)时,会将它两次写入同一参数。

应该这样写(7个参数):

add_all_ta_features(df, "Open", "High", "Low", "Close", "Volume_BTC", fillna=True)

您可以在ta的GitHub上找到更多示例: https://github.com/bukosabino/ta