从外部 PY 文件调用函数时数据帧应用函数错误



当我使用外部.py文件中的函数作为应用函数中的参数时,数据帧应用函数的操作方式不同。

在 jupyter 笔记本中,当我在同一个.ipynb文件中定义函数时,我的代码运行良好。但是,当我从.py文件导入函数时,出现类似 ("name 'pd' is not defined", 'occurred at index 0') 的错误。

import pandas as pd
import ind_assign as ind
def ffi48(x):
    if (3000<=x['sic'] <= 4000):
        ffi48 = 1
    if (4000<x['sic'] <= 5000):
        ffi48 = 2
    return pd.Series({'sic':x['sic'], 'ffi48': ffi48})

d = {'sic': [3725, 4920]}
df = pd.DataFrame(data=d)
df.apply(ffi48, axis=1) 
or
df.apply(ind.ffi48, axis=1)

df.apply(ffi48, axis=1)效果很好。但是,当我使用ffi48函数制作ind_assign.py文件并像df.apply(ind.ffi48, axis=1)一样调用时,我遇到了诸如 ("name 'pd' is not defined", 'occurred at index 0') .

我刚刚重新创建了您的错误。您需要按照建议在ind_assign.py文件中import pandas as pd,然后保存ind_assign.py,但随后还需要在笔记本中重新启动内核。重新启动内核后,它按预期工作。

https://support.enthought.com/hc/en-us/articles/204469240-Jupyter-IPython-After-editing-a-module-changes-are-not-effective-without-kernel-restart?mobile_site=true

最新更新