Python 如何避免类重写?

Python 如何避免类重写?,python,pandas,inheritance,Python,Pandas,Inheritance,我建立了一个包含时间推移信息的数据集。为了使终端和Spyder IDE上的读取更简单,我创建了一个自定义类,该类继承自datetime.timedelta,它唯一的变化是表示方法(\uuuuu repr\uu和\uu str\uuu): 当我们检查失效系列时,您可以看到已发生转换: In [2]: a['lapse'].dtype Out[2]: dtype('<m8[ns]') In [3]: type(a.loc[0, 'lapse']) Out[3]: pandas._libs.t

我建立了一个包含时间推移信息的数据集。为了使终端和Spyder IDE上的读取更简单,我创建了一个自定义类,该类继承自
datetime.timedelta
,它唯一的变化是表示方法(
\uuuuu repr\uu
\uu str\uuu
):

当我们检查
失效
系列时,您可以看到已发生转换:

In [2]: a['lapse'].dtype
Out[2]: dtype('<m8[ns]')

In [3]: type(a.loc[0, 'lapse'])
Out[3]: pandas._libs.tslibs.timedeltas.Timedelta
[2]中的
:一个[‘失效].dtype

Out[2]:数据类型(“
pandas
并没有覆盖您的自定义类。pandas将使用更多的原始数据类型,这是一件好事,这使它快速高效。您可以尝试显式使用
dtype=object
,但这将影响性能。这是否是一个大问题取决于您的想法是,pandas主要是为数据管理而构建的计算工具,而不是可视化。通过“强制”您的
类型
(以及
对象
dtype),您将失去pandas的所有数据操作能力,并最终得到非常昂贵且沉重的
漂亮打印
library@rafaelc,它不是一个大的数据集,所以我不担心这种情况下的性能。
In [1]: a = pd.DataFrame(
    {'date':
        {0: datetime.date(2020, 9, 30),
         1: datetime.date(2020, 10, 1),
         2: datetime.date(2020, 10, 2),
         3: datetime.date(2020, 10, 5)},
     'lapse':
        {0: tdn(minutes=31),
         1: tdn(minutes=51),
         2: tdn(minutes=-38),
         3: tdn(minutes=41)}})
Out[1]:
         date             lapse
0  2020-09-30          00:31:00
1  2020-10-01          00:51:00
2  2020-10-02 -1 days +23:22:00
3  2020-10-05          00:41:00
In [2]: a['lapse'].dtype
Out[2]: dtype('<m8[ns]')

In [3]: type(a.loc[0, 'lapse'])
Out[3]: pandas._libs.tslibs.timedeltas.Timedelta