从外部py文件调用函数时,dataframe应用函数错误

时间:2019-05-31 15:38:29

标签: python dataframe jupyter apply

当我使用外部.py文件中的函数作为apply函数中的参数时,dataframe apply函数的操作方式有所不同。

在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)运作良好。但是,当我使用ind_assign.py函数制作ffi48文件并像df.apply(ind.ffi48, axis=1)那样调用时,出现如下错误 ("name 'pd' is not defined", 'occurred at index 0')

1 个答案:

答案 0 :(得分:0)

我只是重新创建了您的错误。您需要按照建议在import pandas as pd文件中ind_assign.py,然后保存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