代码之家  ›  专栏  ›  技术社区  ›  Xukrao

PyCharm:无法查看数据帧的子类

  •  1
  • Xukrao  · 技术社区  · 6 年前

    PyCharm有一个整洁的内置 viewer for pandas dataframes

    View as DataFrame 可用于标准dataframe,但不适用于dataframe子类。

    pycharm 2018.2.4 screenshot

    下面是示例代码,但采用文本格式:

    import pandas as pd
    
    class SubDataFrame(pd.DataFrame):
        pass
    
    df = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]], columns=['a','b','c'])
    sdf = SubDataFrame([[1,2,3],[4,5,6],[7,8,9]], columns=['a','b','c'])
    

    问题

    有没有办法为数据帧子类启用PyCharm数据帧查看器?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Maxwell    4 年前

    这个解决方案不需要在调试期间创建临时变量,而且它还允许您查看原始数据帧,而不需要转置或丢失头。

    在子类中,添加以下内容:

    @property
    def base_class_view(self):
        # use this to view the base class, needed for debugging in some IDEs.
        return pd.DataFrame(self)
    

    现在,当使用PyCharm进行调试时,您可以在 Variables 观众。你应该看看 base_class_view 属性,然后单击 View as DataFrame 在右边。

        2
  •  1
  •   Eskapp    6 年前

    我不知道你可以启用任何选项,但你可以扩展变量 sdf 通过单击变量名称左侧的小箭头。

    • 查看 T 属于 T (即转置的转置)作为数据帧(您应该看到可点击的链接)
    • _get_values _values values 作为查看器中的数组(相同,应该有一个可单击的链接)

    这是我目前在PyCharm中看到的唯一一种能满足你要求的方法。

        3
  •  0
  •   Xukrao    6 年前

    最后我决定另找一份工作。我将子类dataframe的数据内容复制到标准dataframe,如下所示:

    temp_df = pd.DataFrame(sdf)
    

    然后在PyCharm数据帧查看器中打开。