__repr__可以返回一个dataframe吗?

3

以下代码能否使__repr__返回一个数据帧?

下面的代码将会报错

TypeError: __str__ returned non-string (type DataFrame)

因为 - 我猜 - __repr__ 必须返回一个字符串。

或者我应该用其他的魔术方法替换 __repr__ 呢?

import pandas as pd

class Query():
    def __init__(self, filename):
        self.df = pd.read_excel(filename)
        
    def __repr__(self):
        return self.df
       
if __name__ == '__main__':
    filename = 'some_filename'
    query = Query(filename)
    print(query)

2
你为什么想要这样做?这可能是一个XY问题吗?也许有更好的方法。 - pault
1个回答

8
您希望__repr__返回一个字符串,该字符串将是您数据框的表示。因此,只需执行以下操作:
def __repr__(self):
        return repr(self.df)

2
谢谢,但我希望返回一个对象(以便能够处理它),而不是它的字符串表示。 - barciewicz
然后你可以在 your_query.df 中找到它。打印底层 df 的表示形式和直接使用它是两个完全不同的事情。 - Thierry Lathuille
@barciewicz,这没有任何意义。repr应该返回一个字符串,你为什么想让它做其他的事情?你想象自己能做什么? - juanpa.arrivillaga

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接