astype 熊猫的错误​​?

Posted

技术标签:

【中文标题】astype 熊猫的错误​​?【英文标题】:Bug on astype pandas? 【发布时间】:2017-05-24 19:41:24 【问题描述】:

我正在使用 timedeltas,似乎这段代码

copy_for_U.Time.astype('timedelta64[m]',copy=False);

不会更改数据框 - 如果我从文档中正确理解的话,它应该这样做:

Signature: full_df.Time.astype(dtype, copy=True, raise_on_error=True, **kwargs) Docstring: Cast object to input numpy.dtype Return a copy when copy = True (be really careful with this!)

【问题讨论】:

我相信只有在不创建副本的情况下才能进行更改。您在这里需要的dtype 的更改是“太多”的更改,所以我认为它(默默地)返回一个副本。这确实是潜在的 numpy 行为,请参阅astype IIUC 你需要copy_for_U.Time = copy_for_U.Time.astype('timedelta64[m]') 吗? @jezrael 是的,这就是我所做的,并且成功了……但是我浪费了一个下午的时间寻找其他地方,因为我无法绘制 【参考方案1】:

为了将更改应用于数据帧,需要将数据帧分配给想要的变量(或传递 inplace=True - this 可能是一个不错的阅读线程)。

另外,这样做时,您不需要将copy=False 传递为@jezrael suggests。

鉴于此,这应该可以解决您的问题

copy_for_U.Time = copy_for_U.Time.astype('timedelta64[m]') 

【讨论】:

以上是关于astype 熊猫的错误​​?的主要内容,如果未能解决你的问题,请参考以下文章

Pandas astype 为 int() 抛出无效的文字,以 10 为底错误

如何在pandas数据帧中反转.astype(str)?

astype()函数

astype 是不是编辑原始数据框?

type()dtype()astype() 用法

Python 中的 astype() 和 .dtype