DataFrame применяется ошибка функции при вызове функции из внешнего файла Py - PullRequest
0 голосов
/ 31 мая 2019

Функция применения в датафрейме работает по-разному, когда я использую функции из внешнего файла .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) работает хорошо.Однако, когда я создаю файл ind_assign.py с функцией ffi48 и вызываю как df.apply(ind.ffi48, axis=1), я получаю такие ошибки, как ("name 'pd' is not defined", 'occurred at index 0').

1 Ответ

0 голосов
/ 31 мая 2019

Я просто воссоздал вашу ошибку. Вам нужно 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

...