首页 > 解决方案 > 无法在 pycharm 调试器会话中检查 DataFrame 类型的类属性

问题描述

我在 python 3.6 中设置了一个函数和一个类方法,它们都获取 boston 数据集。在后一种情况下,波士顿数据集被存储为对象的类属性。

'Bunch' 类型在两种情况下都以完全相同的方式转换为 pandas 数据帧。

当我在 pycharm 调试器中检查两者时,使用 pycharm 的 View as Array / Data Frame 功能...

https://www.jetbrains.com/help/pycharm/viewing-as-array.html

...我可以通过调用函数并将输出分配给变量来查看结果,但不能查看分配给实例化对象的类属性的 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))

当我运行调试器会话时,我可以使用 pycharm 中的“查看为数据框”函数检查 my_data_2 变量,但是当我对类属性 raw_data 执行相同操作时,“查看为数据框”对话框窗口显示 - “没有显示',即使我可以正确地将其内容打印到控制台(使用 pandas.DataFrame.head() 方法)

我在 Ubuntu Linux 上使用 PyCharm 2018.3.3。

标签: python-3.xpandasscikit-learnpycharm

解决方案


推荐阅读