использование библиотеки внутри функции python

#python #pandas

#python #pandas

Вопрос:

Проблема: импорт файла python (EDA.py ) в записную книжку jupyter.В файле python используются pandas и в нем есть «Импортировать pandas как pd». Но в Jupyter я получаю сообщение об ошибке, что pd не определен.

Файл Python:

<EDA.py >

 def eda_df(df):
    import pandas as pd
    print('=================Unique Values============================')
    unique_series = df.apply(pd.Series.nunique).sort_values()
    print(unique_series)
  

Записная книжка Jupyter:

     import EDA
    train = pd.read_csv(r'.kagglehousinghouse-prices-advanced-regression-techniquestrain.csv')
    eda_df(train)

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-269-86ee9695b171> in <module>
----> 1 eda_df(train)

~iCloudDriveAdnan PCData ScienceJupyter NBEDA.py in eda_df(df)
     13     print('Features missing more than 40% data: ',len(missing_data_list))
     14     print(missing_data_list)
---> 15     print('=================Unique Values============================')
     16     unique_series = df.apply(pd.Series.nunique).sort_values()
     17     unique_list = unique_series[unique_series<15].index.to_list()

NameError: name 'pd' is not defined
  

Комментарии:

1. А ты import pandas as pd ? Можете ли вы включить это в свой код?

2. См. Модули

3. «попробовал ввести import pandas as pd в функцию» — это именно правильный способ импортировать библиотеку (более по-питоновски импортировать все в верхней части файла, но это тоже работает)

4. Я добавил импорт pandas как pd в файл .py (как в функции, так и выше). но все равно выдает ошибку.

Ответ №1:

Вам просто нужно импортировать pandas как pd:

 import pandas as pd

def eda_df(df):
    unique_series = df.apply(pd.Series.nunique).sort_values()
    return (unique_series)
  

Комментарии:

1. Я не уверен, что код, который, по вашему мнению, выполняется, является фактическим кодом, который выполняется. Пожалуйста, опубликуйте точную трассировку стека (полное исключение) в вопросе (не в комментарии), чтобы мы могли точно видеть, что происходит. Не забудьте сделать отступ с четырьмя пробелами, чтобы пробелы не сворачивались; это можно сделать, сначала вставив копию трассировки стека, затем выбрав вставленную трассировку стека, а затем нажав Ctrl K.

2. Мой ноутбук jupyter не обновлялся и каким-то образом использовал старый файл. Спасибо, теперь это работает.