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 熊猫的错误?的主要内容,如果未能解决你的问题,请参考以下文章