栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

熊猫对象的子类与其他对象的子类有不同的工作方式吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

熊猫对象的子类与其他对象的子类有不同的工作方式吗?

当前答案(熊猫> = 0.13)

Pandas 0.13中的内部重构大大简化了子类。

Series
现在可以像其他任何Python对象一样将Pandas子类化:

class MySeries(pd.Series):    def my_method(self):        return "my_method"

旧版答案(熊猫<= 0.12)

问题是Series使用

__new__
它来确保实例化Series对象。

您可以像这样修改您的课程:

class Support(pd.Series):    def __new__(cls, *args, **kwargs):        arr = Series.__new__(cls, *args, **kwargs)        return arr.view(Support)    def supportMethod1(self):        print 'I am support method 1'def supportMethod2(self):        print 'I am support method 2'

但是,最好使用has-a而不是is-a。或猴子修补Series对象。原因是由于使用熊猫的数据存储特性,您经常会丢失其子类。像这样简单

s.ix[:5] s.cumsum()

将返回Series对象而不是您的子类。在内部,数据存储在连续的数组中并针对速度进行了优化。数据仅在需要时装在一个类中,并且这些类是硬编码的。另外,如果类似的东西

s.ix[:5]
应该返回相同的子类,现在还不是很明显。那将取决于您的子类的语义以及附加到它的元数据。

http://nbviewer.ipython.org/3366583/subclassing%20pandas%20objects.ipynb有一些注释。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/648451.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号