gpt4 book ai didi

python - 即使以前导入过,Cufflinks 如何将方法注入(inject) Pandas?

转载 作者:太空宇宙 更新时间:2023-11-03 11:42:39 26 4
gpt4 key购买 nike

Cufflinks 以DataFrame.iplot 的形式提供了Panda 的DataFrame 和plotly iplot 之间的接口(interface)。下面的前两个输出示例并不让我感到惊讶,但第三个却让我感到惊讶。每个都在 iPython3 的新实例中运行。

import pandas as pd
pd.DataFrame.iplot

Out[1]: AttributeError: type object 'DataFrame' has no attribute 'iplot'

import pandas as pd
import cufflinks as cf
pd.DataFrame.iplot

Out[1]: <function cufflinks.plotlytools._iplot>

import cufflinks as cf
import pandas as pd
pd.DataFrame.iplot

Out[1]: <function cufflinks.plotlytools._iplot>

首先我们看到 pd.DataFrame 默认不包含 iplot。在第二个示例中,当在 Pandas 之后导入 cufflinks 时,它可以轻松地向 DataFrame 类添加一个额外的方法以提供额外的功能。但是,在第三种方法中,DataFrame 类将在 cufflinks 导入后的 import pandas 语句中定义。 additional方法怎么还加?这绝对方便,因为我对中间示例可能如何工作的理解需要始终按顺序导入库,这是不可取的,所以我很想知道这里使用的技巧。

最佳答案

我很确定这是因为 python caches它加载的模块。例如,以下所有表达式都为真:

import sys.modules
import pandas as pd
import pandas as pds
print(pd is pds)
print(pd is sys.modules['pandas'])
print(pds is sys.modules['pandas'])

打印:

True
True
True

关于python - 即使以前导入过,Cufflinks 如何将方法注入(inject) Pandas?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46159343/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com