Ошибка профилирования панд AttributeError: у объекта "DataFrame" нет атрибута "profile_report"
Я хотел использовать профилирование панд для создания некоторых eda в наборе данных, но я получаю сообщение об ошибке: AttributeError: У объекта 'DataFrame' нет атрибута 'profile_report'
Я создал скрипт Python на Spyder со следующим кодом:
import pandas as pd
import pandas_profiling
data_abc = pd.read_csv('abc.csv')
profile = data_abc.profile_report(title='Pandas Profiling Report')
profile.to_file(output_file="abc_pandas_profiling.html")
AttributeError: у объекта "DataFrame" нет атрибута "profile_report"
9 ответов
Точка входа df.profile_report() доступна начиная с версии 2.0.0. Солнце отсюда
Вы установили pandas-profiling через pip или conda?
использование: pip install -U pandas-profiling
чтобы решить эту проблему и перезапустить ядро
Проблема в том, что команда еще не обновила установки pip или conda (описано здесь). Если вы установили с помощью одного из них, попробуйте это в настоящее время.
profile = pandas_profiling.ProfileReport(df)
print(profile)
Для тех, кто использует google colabs, библиотека профилирования устарела, поэтому используйте команду ниже и перезапустите среду выполнения
! pip install https://github.com/pandas-profiling/pandas-profiling/archive/master.zip
Это должно сработать для тех, кто хочет использовать последнюю версию:
- Пробег
pip uninstall pandas_profiling
из командной строки anaconda (учитывая, что вы используете Spyder, я предполагаю, что это будет ваш случай) / или командной строки - Пробег
pip install https://github.com/pandas-profiling/pandas-profiling/archive/master.zip
Если вы используете что-то вроде Jupyter Notebook/Jupyter Lab, обязательно перезапустите ядро и повторно импортируйте свои пакеты.
Надеюсь, это поможет.
Мое решение
Для меня установка через pip выдавала ошибки, поэтому я установил ее через conda отсюда .
Пример кода
А вот пример кода для использования отчета профиля:
import pandas as pd
from pandas_profiling import ProfileReport
data_abc = pd.read_csv('abc.csv')
profile = ProfileReport(data_abc, minimal=True)
profile.to_file("abc_pandas_profiling.html")
Чтобы прочитать файл html, я использовал следующий код
df = pd.read_html("abc_pandas_profiling.html")
print(df[0])
Следующий код работает для меня в Google Colabs.
!pip install pandas-profiling==2.8.0
import numpy as np
import pandas as pd
import pandas_profiling as pp
df = pd.read_csv('/content/sample_data/california_housing_train.csv')
profile = df.profile_report(title = "Data Profiling Report")
profile.to_file("ProfileReportTest.html")
Единственный обходной путь, который я обнаружил, заключался в том, что созданный мной скрипт на python выполняется из командной строки и выдает правильный вывод, но код все еще выдает ошибку в Spyder.
Если ничего из вышеперечисленного не сработало, можете ли вы проверить, установив кодировку unicode_escape в read_csv? Это может быть связано с одной из ваших колонок
encoding = 'unicode_escape'
Попробуйте в среде conda
!pip install --user pandas-profiling
import pandas_profiling
data.profile_report()