Я установил функцию и метод класса в Python 3.6, которые оба получают набор данных из Бостона. В последнем случае бостонский набор данных сохраняется как атрибут класса объекта.
В обоих случаях тип 'Bunch' преобразуется в фрейм данных Pandas одинаковым образом.
Когда я проверяю оба в отладчике pycharm, используя функциональность View as Array / Data Frame функции pycharm ...
https://www.jetbrains.com/help/pycharm/viewing-as-array.html
... Я могу просмотреть df, который получается, вызвав функцию и присвоив выходные данные переменной, но не df, который назначен атрибуту класса экземпляра объекта.
from sklearn.datasets import load_boston
import pandas as pd
# define function to get boston data
def get_boston():
boston = load_boston()
df = pd.DataFrame(boston.data, columns=boston.feature_names)
df['target'] = boston.target
return df
class MyData:
"""
Object with boston data as attribute
"""
def __init__(self, raw_data=None, processed_data=None):
self.raw_data = raw_data
self.processed_data = processed_data
def get_data(self):
boston = load_boston()
df = pd.DataFrame(boston.data, columns=boston.feature_names)
df['target'] = boston.target
self.raw_data = df
my_data_1 = MyData()
my_data_1.get_data()
my_data_2 = get_boston()
print(my_data_1.raw_data.head(5))
Когда я запускаю сеанс отладчика, я могу проверить переменную my_data_2 с помощью функции «Просмотр в виде фрейма данных» в pycharm, но когда я делаю то же самое для атрибута класса raw_data, в диалоговом окне «Просмотр в виде фрейма данных» отображается - «нечего показывать», хотя я могу правильно распечатать его содержимое на консоли (используя метод pandas.DataFrame.head ())
Я использую PyCharm 2018.3.3 в Ubuntu Linux.