当我使用外部.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)
效果很好。然而,当我使用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
相关问题 更多 >
编程相关推荐