gpt4 book ai didi

python - 属性错误 : 'numpy.datetime64' object has no attribute 'toordinal'

转载 作者:太空宇宙 更新时间:2023-11-04 00:15:32 29 4
gpt4 key购买 nike

我想画一个时间轴

import datetime          as da
import matplotlib.dates as dt

# Data
df = pd.DataFrame({'A': [da.datetime(2017,1,5,9,8), da.datetime(2017,1,5,9,9), da.datetime(2017,1,7,9,19), da.datetime(2017,1,7,9,19), da.datetime(2017,1,7,9,19), da.datetime(2017,2,7,9,19), da.datetime(2017,2,7,9,19)],
'B': [da.datetime(2017,1,5,9,9), da.datetime(2017,1,5,9,12), da.datetime(2017,1,7,9,26), da.datetime(2017,1,7,9,20), da.datetime(2017,1,7,9,21), da.datetime(2017,2,7,9,23), da.datetime(2017,2,7,9,25)],
'C' :[1, 2, 3, 4, 5, 6, 7 ]})

# Visualisation
ax = plt.subplot()
ax = plt.hlines(df.C,
dt.date2num(df.A),
dt.date2num(df.B))

但出现错误:

AttributeError: 'numpy.datetime64' object has no attribute 'toordinal'

我认为是数据类型造成的:

df.A.dtype 
dtype('<M8[ns]')

我尝试了一些推荐的解决方案(converter 和 pandacnv),但仍然无法正常工作。

最佳答案

如果您的目标是使用 AB 列作为 x 轴并使用 C 列作为 y 轴来绘制水平线,您可以直接使用数据框数组。将 1 天添加到 B 列,因为时间变化非常小,无法在图中观察到:

df['B'] = df['B']+pd.Timedelta("1D")
ax = plt.subplot()
ax.hlines(df.C.values, df.A.values, df.B.values, lw=2)
plt.show()

输出图:

enter image description here

关于python - 属性错误 : 'numpy.datetime64' object has no attribute 'toordinal' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51101252/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com