Python Pandas.DataFrame中的对象表示
假设我有下面的类“MyClass”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
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})