我试图查看与特定事件日期以来时间差异相关的数据。
我从一系列日期中减去事件的日期。
当尝试使用'scatter'绘制它时,它会因此错误而失败:
TypeError: Cannot cast scalar from dtype('<m8[ns]') to dtype('<m8') according to the rule 'same_kind'
另一方面,'Plot'可以找到。
如何使用'scatter'来完成这项工作?
完整示例:
import pandas as pd
dates = ["Tue 2 Jun 16:55:51 CEST 2015",
"Wed 3 Jun 14:51:49 CEST 2015",
"Fri 5 Jun 10:31:59 CEST 2015",
"Sat 6 Jun 20:47:31 CEST 2015",
"Sun 7 Jun 13:58:23 CEST 2015",
"Mon 8 Jun 14:56:49 CEST 2015",
"Tue 9 Jun 23:39:11 CEST 2015",
"Sat 13 Jun 16:55:26 CEST 2015",
"Sun 14 Jun 15:52:34 CEST 2015",
"Sun 15 Jun 16:17:24 CEST 2015",
"Mon 16 Jun 13:23:18 CEST 2015"]
delta_dates = pd.to_datetime(dates) - pd.to_datetime("Tue 9 Jun 23:39:11 CEST 2015")
fig, ax = plt.subplots()
ax.plot(delta_dates, [1]*len(delta_dates)) # WORKS
ax.scatter(delta_dates, [1]*len(delta_dates)) # FAILS
plt.show()
答案 0 :(得分:0)
您可以使用TimedeltaIndex
将Float64Index
转换为np.timedelta64
。例如,要以秒为单位绘制delta_date
,请使用
delta_dates = (pd.to_datetime(dates) - pd.to_datetime("Tue 9 Jun 23:39:11 CEST 2015")) / np.timedelta64(1, "s")
这适用于ax.scatter
。