【问题标题】:Bug on astype pandas?astype 熊猫的错误​​?
【发布时间】: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 是的,这就是我所做的,并且成功了……但是我浪费了一个下午的时间寻找其他地方,因为我无法绘制

标签: python pandas numpy timedelta


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2016-10-23
    • 1970-01-01
    • 2016-06-11
    • 2013-05-15
    • 2017-05-23
    • 2019-08-02
    • 2021-04-02
    • 2018-09-06
    • 1970-01-01
    相关资源
    最近更新 更多