Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python “发生异常”;例如;在函数方法中执行此操作时,简单函数起作用_Python_Python 3.x_Pandas_Dataframe - Fatal编程技术网

Python “发生异常”;例如;在函数方法中执行此操作时,简单函数起作用

Python “发生异常”;例如;在函数方法中执行此操作时,简单函数起作用,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我面临一个奇怪的问题,并试图在这里解释这一点 看看这段代码,这里的“df”是一个数据框,日期作为索引,开放、高、低、闭、卷作为列 calc(df)是我用来计算逻辑并在get\u update()函数中调用ematv()的函数 1.当我运行时,在下面的代码中 df=ematv(df.fillna(0),13) 未发现错误,这是基于“关闭”计算EMA 2.当我使用get_update(),df=ematv(df['example'].fillna(0),lengthema,name='example

我面临一个奇怪的问题,并试图在这里解释这一点

看看这段代码,这里的“df”是一个数据框,日期作为索引,开放、高、低、闭、卷作为列

calc(df)是我用来计算逻辑并在get\u update()函数中调用ematv()的函数

1.当我运行时,在下面的代码中

df=ematv(df.fillna(0),13)

未发现错误,这是基于“关闭”计算EMA

2.当我使用get_update(),df=ematv(df['example'].fillna(0),lengthema,name='example')来计算ema时,从get_update()调用了相同的函数,在这里我得到了错误。 发生异常“示例”

我做错了什么,这对我来说可能是一个很好的教训。 下面给我的警告很少

def ematv(df,period,name='close'):#closely matching except the decimal
    newcol ='ema'+str(period)+name
    df[newcol] = df[name].ewm(span=period,min_periods=0,adjust=False,ignore_na=False).mean()
    return df


def get_update(df, length=None,threshold = None,lengthema=None):
    if length is None:
        length = 14
        lengthema=13
        column_name = 't1'
    else:
        length = int(length)
        lengthema=int(lengthema)
        column_name = 'ti_{}'.format(length)

    df['example']=TA.test(df)//example column with value added
    df=ematv(df['example'].fillna(0),lengthema,name='example')
    return df


def calc(df):
    df = ematv(df.fillna(0),13)
    df  = get_update(df.fillna(0), length=20,threshold =0,lengthema=13)
    return df

calc(df)
我得到一些警告:

pydevd_解析器.py:166:FutureWarning:Series.base已弃用,并且 将在未来版本attr=getattr(var,n)中删除 pydevd_解析器.py:166:FutureWarning:Series.data已弃用,并且 将在未来版本attr=getattr(var,n)中删除 pydevd_解析器.py:166:FutureWarning:Series.flags已弃用,并且 将在未来版本attr=getattr(var,n)中删除 pydevd_解析器.py:166:FutureWarning:Series.itemsize已弃用 并将在将来的版本attr=getattr(var,n)中删除 pydevd_解析器.py:166:FutureWarning:Series.Streads不推荐使用 并将在将来的版本attr=getattr(var,n)中删除 pydevd_解析器.py:71:FutureWarning:Series.flags已弃用,并且 将在将来的版本返回getattr(var,attribute)时删除 pydevd_解析器.py:71:FutureWarning:Series.Streads已弃用,并且 将在将来的版本返回getattr(var,attribute)时删除

编辑1: 已尝试使用此编辑更改代码

def ematv(dff:DataFrame,period,name='close')-> Series:#closely matching except the decimal
    newcol ='ema'+str(period)+name
    dff[newcol] = dff[name].ewm(span=period,min_periods=0,adjust=False,ignore_na=False).mean()
    return dff
现在计算ema,但我得到了这个错误
异常发生,通过的项目数量错误34个,放置意味着1个

这是如何解决问题的我不是很确定,这解决了问题。添加此
df['examples']=''
在调用

df['examples']=ematv


这是如何解决问题的我不是很确定,这解决了问题。添加此
df['examples']=''
在调用

df['examples']=ematv


你在一个地方调用df=ematv(df.fillna(0),13)和df=ematv(df['example'].fillna(0),lengthema,name='example'),也许我遗漏了什么,但我相信你发出了两个不同的调用,这就是为什么它们的行为不同。这两个实例都不同,一次是用“close”计算ema这是第一个实例,第二个实例是计算ema,其中输入了“示例”列。为什么它在第二次审判中失败了呢。请检查给出的警告;发生异常,我没有收到任何其他错误。您是否可以添加异常的完整堆栈跟踪,似乎是导致此错误的关键:异常发生的“示例”…行
df['example']=TA.test(df)//添加值的示例列在
get\u update
中不是有效的Python。有丢失的吗?哪里什么是TA?@gaFF TA是从Finta导入的,您可以使用任何类实例来检查这一点。你在一个地方调用df=ematv(df.fillna(0),13)和df=ematv(df['example'].fillna(0),lengthema,name='example'),也许我遗漏了什么,但我相信你发出了两个不同的调用,这就是为什么它们的行为不同。这两个实例都不同,一次是用“close”计算ema这是第一个实例,第二个实例是计算ema,其中输入了“示例”列。为什么它在第二次审判中失败了呢。请检查给出的警告;发生异常,我没有收到任何其他错误。您是否可以添加异常的完整堆栈跟踪,似乎是导致此错误的关键:异常发生的“示例”…行
df['example']=TA.test(df)//添加值的示例列在
get\u update
中不是有效的Python。有丢失的吗?哪里什么是TA?@gaFF TA是从Finta导入的,您可以使用任何类实例来检查这一点。
def ematv(dff,period,name='close'):#closely matching except the decimal
    newcol ='ema'+str(period)+name
    dff[newcol] = dff[name].ewm(span=period,min_periods=0,adjust=False,ignore_na=False).mean()
    return dff[newcol]


def get_update(df, length=None,threshold = None,lengthema=None):
    if length is None:
        length = 14
        lengthema=13
        column_name = 't1'
    else:
        length = int(length)
        lengthema=int(lengthema)
        column_name = 'ti_{}'.format(length)

    df['example']=TA.test(df)//example column with value added
    df['examples']=''
    df['examples']=ematv(df['example'].fillna(0),lengthema,name='example')
    return df


def calc(df):
    df = ematv(df.fillna(0),13)
    df  = get_update(df.fillna(0), length=20,threshold =0,lengthema=13)
    return df

calc(df)