当我使用外部.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')
。
答案 0 :(得分:0)
我只是重新创建了您的错误。您需要按照建议在import pandas as pd
文件中ind_assign.py
,然后保存ind_assign.py
,但同时还需要重新启动笔记本中的内核。重新启动内核后,它可以按预期工作。