【发布时间】:2016-08-25 15:57:36
【问题描述】:
我有一个包含 52166 个数据点的大数据集,如下所示:
bc_conc
2010-04-09 10:00:00 609.542000
2010-04-09 11:00:00 663.500000
2010-04-09 12:00:00 524.661667
2010-04-09 13:00:00 228.706667
2010-04-09 14:00:00 279.721667
这是一个熊猫数据框,索引在日期时间。现在我喜欢将 bc_conc 的数据与时间作图,并添加一条趋势线。
我使用了以下代码:
data = data.resample('M', closed='left', label='left').mean()
x1 = data.index
x2 = matplotlib.dates.date2num(data.index.to_pydatetime())
y = data.bc_conc
z = np.polyfit(x2, y, 1)
p = np.poly1d(z)
fig = plt.figure()
ax1 = fig.add_subplot(1, 1, 1)
plt.plot_date(x=x1, y=y, fmt='b-')
plt.plot(x1, p(x2), 'ro')
plt.show()
但是,如您所见,我对数据进行了重新采样。我这样做是因为我没有,代码只是给了我一个没有趋势线的数据图。如果我将它们重新采样到几天,则情节仍然没有趋势线。如果我将它们重新采样到几个月,就会显示一条趋势线。
似乎该代码仅适用于较小的数据集。为什么是这样?我想知道有人可以向我解释这一点,因为我喜欢将我的数据重新采样到几天,但不会更远..
提前致谢
【问题讨论】:
标签: python numpy pandas matplotlib machine-learning