Python Pandas.DataFrame中的对象表示

Python Pandas.DataFrame中的对象表示,python,python-3.x,pandas,dataframe,representation,Python,Python 3.x,Pandas,Dataframe,Representation,假设我有下面的类“MyClass” class-MyClass: 定义报告(自我): 返回'Myclass()' 定义(自我): 返回“Meh” 实例=[MyClass()用于范围(5)中的i] 一些实例被创建并存储在instances变量中。现在,我们检查它的内容 >实例 [Myclass(),Myclass(),Myclass(),Myclass(),Myclass(),Myclass()] 为了表示对象,python调用方法。但是,当将相同的实例变量传递给pandas.DataFram

假设我有下面的类“MyClass”

class-MyClass:
定义报告(自我):
返回'Myclass()'
定义(自我):
返回“Meh”
实例=[MyClass()用于范围(5)中的i]
一些实例被创建并存储在
instances
变量中。现在,我们检查它的内容

>实例
[Myclass(),Myclass(),Myclass(),Myclass(),Myclass(),Myclass()]
为了表示对象,python调用
方法。但是,当将相同的
实例
变量传递给
pandas.DataFrame
时,对象的表示形式将发生变化,并且似乎调用了
\uu str\uu
方法

将熊猫作为pd导入
df=pd.DataFrame(数据=实例)
>>df
0
百万立方米
一百万
200万
300万
400万

为什么对象的表示方式发生了更改?我可以确定数据帧中使用的表示形式吗?

数据确实存储为对象。熊猫似乎只是在显示数据帧时(隐式地)调用
\uuuu str\uuu
方法

您可以通过调用以下命令来验证:

df[0].map(type)
它为列中的每个元素调用
type
,并返回:

Out[572]: 
0    <class '__main__.MyClass'>
1    <class '__main__.MyClass'>
2    <class '__main__.MyClass'>
3    <class '__main__.MyClass'>
4    <class '__main__.MyClass'>
Name: 0, dtype: object

# likewise you get the the
# representation string of the objects
# with:
df[0].map(repr)
Out[578]: 
0    Myclass()
1    Myclass()
2    Myclass()
3    Myclass()
4    Myclass()
Name: my_instances, dtype: object

这样,您就可以指定一个列名。

谢谢您的回复。我确实在怀疑另一个内部电话。然而,令人奇怪的是,例如numpy在内部使用repr,所以您希望熊猫也这样做。知道如何更改对象的表示形式吗?我想这是因为
pandas
也用于
jupyter
笔记本,其输出是为了好看,而
repr
通常用于调试输出或工具中(例如,如果对象的类别相关)。但是您想如何更改表示?你已经在课堂上使用了这两个相关的方法,你是说别的吗?
df = pd.DataFrame({'my_instances': instances})