‘numpy.datetime64’ object has no attribute ‘toordinal’

‘numpy.datetime64’ object has no attribute ‘toordinal’

对索引为时间类型的series画折线图出错

在这里插入图片描述
这是series数据:
在这里插入图片描述
问题所在:
没有对时间索引进行排序。
将代码改为:

aa = df.groupby(by='user_id')['month'].min().value_counts()
aa.sort_index().plot()

问题解决!
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 这个错误通常是因为你试图对一个 `numpy.datetime64` 类型的对象使用 `strftime` 方法,但是 `numpy.datetime64` 类型并没有这个方法。 要解决这个问题,你可以将 `numpy.datetime64` 类型的对象转换为 Python 的 `datetime.datetime` 类型,然后再使用 `strftime` 方法。例如: ```python import numpy as np import datetime # 创建一个 numpy.datetime64 对象 dt64 = np.datetime64('2021-10-01 12:00:00') # 将 numpy.datetime64 转换为 datetime.datetime dt = dt64.astype(datetime.datetime) # 使用 strftime 方法格式化日期时间 formatted = dt.strftime('%Y-%m-%d %H:%M:%S') print(formatted) ``` 输出结果为: ``` 2021-10-01 12:00:00 ``` 另外,如果你只是想获取 `numpy.datetime64` 对象表示的时间戳,可以使用 `numpy.datetime64` 对象的 `astype(int)` 方法将其转换为整数类型。例如: ```python import numpy as np # 创建一个 numpy.datetime64 对象 dt64 = np.datetime64('2021-10-01 12:00:00') # 将 numpy.datetime64 转换为时间戳 timestamp = dt64.astype(int) // 10**6 print(timestamp) ``` 输出结果为: ``` 1633084800000 ``` 其中,除以 $10^6$ 是因为 `numpy.datetime64` 对象表示的是纳秒级别的时间戳,而 JavaScript 中的时间戳是毫秒级别的,因此需要将其转换为毫秒级别的时间戳。 ### 回答2: `numpy.datetime64`对象没有`strftime`属性是因为`numpy`中的`datetime64`对象是一种特殊类型的日期时间对象,它不支持直接调用`strftime`方法来格式化日期时间。 `numpy`的`datetime64`对象是为了高效存储和操作日期时间数据而设计的。它不同于Python标准库`datetime`模块中的`datetime`对象,后者具有完整的日期时间操作和格式化方法。 如果你想要格式化`numpy.datetime64`对象,你可以先将其转换为Python的`datetime`对象,然后再使用`strftime`方法来格式化日期时间。下面是一个示例代码: ```python import numpy as np from datetime import datetime dt = np.datetime64('2022-01-01') dt_py = dt.astype(datetime) # 将numpy.datetime64对象转换为datetime对象 formatted_date = dt_py.strftime('%Y-%m-%d') # 使用strftime格式化日期时间 print(formatted_date) ``` 在这个示例中,我们首先将`numpy.datetime64`对象`dt`转换为Python的`datetime`对象`dt_py`,然后我们可以使用`dt_py.strftime`方法来对日期时间进行格式化。输出结果将是`2022-01-01`。 总结来说,要对`numpy.datetime64`对象进行格式化,你需要先将其转换为Python的`datetime`对象,然后使用`strftime`方法来格式化日期时间。 ### 回答3: numpy中的datetime64对象不支持strftime方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东儿930616

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值