Python 在dataframe中使用模块中的函数

Python 在dataframe中使用模块中的函数,python,pandas,dataframe,module,Python,Pandas,Dataframe,Module,我有以下数据帧: Open High Low Close Date 2000-02-01 6841.12 7052.22 6841.12 7050.46 2000-02-02 7063.57 7172.05 7038.71 7171.95 2000-02-03 7175.87 7354.56 7134.42 7354.26 import TA as TA df['signal'] = np.where(TA.p

我有以下数据帧:

            Open     High     Low   Close
Date                
2000-02-01  6841.12 7052.22 6841.12 7050.46
2000-02-02  7063.57 7172.05 7038.71 7171.95
2000-02-03  7175.87 7354.56 7134.42 7354.26
import TA as TA

df['signal'] = np.where(TA.pan1(df.High),'Yes', 'No')
我想使用不同模块的函数。假设我调用模块
TA.py
。在本模块中,我输入以下功能:

def pan1(val):
    return val > val.shift(1)
现在,我想应用此函数在dataframe中创建一个新列:

            Open     High     Low   Close
Date                
2000-02-01  6841.12 7052.22 6841.12 7050.46
2000-02-02  7063.57 7172.05 7038.71 7171.95
2000-02-03  7175.87 7354.56 7134.42 7354.26
import TA as TA

df['signal'] = np.where(TA.pan1(df.High),'Yes', 'No')
我收到错误消息,模块“TA”没有属性“pan1”

我怎样才能重建它正在工作的东西(通过保持一个模块的解析)?如果我在同一个脚本中使用相同的函数(没有模块),它就可以工作


编辑:正如注释中所解释的,在
TA.py
中还有其他功能,我可以毫无问题地导入。但此功能在当前设置中似乎错误或不可用。所以,任何我应该做的不同的提示都是受欢迎的。

我将此作为一个可能的解决方案发布,尽管它应该更多的是一个评论。我也有同样的问题,有完全相同的错误信息。问题很平常:我忘了保存模块(在我添加了“有问题的”函数之后)。所以我保存了模块,再次导入,一切正常

我将此作为一种可能的解决方案发布,尽管它更应该是一种评论。我也有同样的问题,有完全相同的错误信息。问题很平常:我忘了保存模块(在我添加了“有问题的”函数之后)。所以我保存了模块,再次导入,一切正常

如果将TA导入为TA,而不是将TA导入为TA,你用TA导入pan1中的
替换为TA_pan1,然后像使用
np一样使用它,会发生什么情况呢。。。也许还有另一个助教模块?您可以尝试(在两行中):
import TA print TA.\uu\u file\uu
并查看
TA
的路径是否指向实际要导入的
TA
:-也许不会是这样,不过。。。对不起,我不能再多说了help@BorrajaX,我可以从同一TA模块导入和应用其他功能。因此,我假设函数pan1的构造方式在模块中不起作用。但是我应该做些什么呢?有两个可能的原因:(1)python解释器严重损坏;(2)您在模块中做错了什么。我的赌注是(2)。FWIW您在这里编写的函数很好,我可以将其放入一个模块中,然后从另一个模块导入。如果将TA作为TA导入
,而不是将其替换为TA导入pan1中的
,作为TA_pan1
,然后像使用
np一样使用它,会发生什么情况?@BorrajaX,出现了一个错误:无法导入名称“pan1”,这很奇怪,我可能不会有什么帮助,但是。。。也许还有另一个助教模块?您可以尝试(在两行中):
import TA print TA.\uu\u file\uu
并查看
TA
的路径是否指向实际要导入的
TA
:-也许不会是这样,不过。。。对不起,我不能再多说了help@BorrajaX,我可以从同一TA模块导入和应用其他功能。因此,我假设函数pan1的构造方式在模块中不起作用。但是我应该做些什么呢?有两个可能的原因:(1)python解释器严重损坏;(2)您在模块中做错了什么。我的赌注是(2)。FWIW你在这里写的函数很好,我可以把它放到一个模块中,然后从另一个模块导入。欢迎使用SO!请发布实际答案,以便获得更多的重复次数,并在将来发表评论。不要发布你知道是评论的“答案”。欢迎访问SO!请发布实际答案,以便获得更多的重复次数,并在将来发表评论。不要发布你知道是评论的“答案”。