您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

当我使用matplotlib的DateFormatter在x轴上格式化日期时,为什么会出现“ python int太大而无法转换为C long”的错误?

当我使用matplotlib的DateFormatter在x轴上格式化日期时,为什么会出现“ python int太大而无法转换为C long”的错误?

这是熊猫0.15中的``回归’‘(由于Index的重构),请参见https://github.com/matplotlib/matplotlib/issues/3727https://github.com/pydata/pandas/issues/8614,但 。

简而言之:matplotlib现在将pandas索引视为一个datetime64[ns]值数组(实际上是非常大的int64s),而不是先前版本的pandas中的Timestamps数组(属于datetime.datetime的子类,可以由matplotlib处理)。 。因此,根本原因是matplotlib不会将datetime64作为日期值处理,而是将其作为整数。

对于熊猫0.15.0(但最好将其升级到新版本),有两种可能的 :

注册datetime64类型,因此matplotlib也将其作为日期处理:

units.registry[np.datetime64] = pd.tseries.converter.DatetimeConverter()

或DatetimeIndex(具有datetime64值)转换成的阵列datetime.datetime值与to_pydatetime方法,并绘制这样的:

ax1.plot(data.index.to_pydatetime(), data.GS10)

相关问题:使用matplotlib在x轴上绘制datetimeindex会在熊猫0.15中产生错误的刻度,而0.14则相反

python 2022/1/1 18:34:19 有215人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶