将数据集缩小到更小的尺寸,保持数据集中的信息要点

时间:2017-08-24 07:13:16

标签: python math statistics

我正在开发折线图。数据由传感器生成,是一个元组(时间戳,值)。传感器每60秒左右创建一个新的数据点。

现在我想在图表中显示它,然后我的限制是大约900点。在该图表的每日视图中,我得到大约1440点,这太多了。

我正在寻找一种通用方法,如何将任何大小的数据集缩小到固定大小(在我的情况下为900),同时保持时间戳分布线性。

由于

2 个答案:

答案 0 :(得分:1)

我相信您正在尝试重新取样您的数据。您当前的采样率是每秒1/60个样本,并且您尝试获得每秒1/96个样本(900 /(24 * 60 * 60))。两种比率之间的比率是5/8。

如果你搜索“python resample”,你会发现其他类似的问题和文章涉及numpy和pandas,它们已经为它构建了例程。

要手动执行此操作,您可以先上采样,每秒获得7200个样本,然后下采样,每秒下降到900个样本。

要进行上采样,您可以将新列表设置为五倍,并使用现有数据填充每五个元素。然后你可以做线性插值来填补空白。

如果您这样做,您可以通过简单地采用每个第八个元素来缩减采样。

答案 1 :(得分:0)

这是我使用pandas的最终解决方案:

df = pd.read_json('co2.json')

# calculates the 'rule' parameter for resampling
seconds = int(df.tail(1)[0]) - int(df.head(1)[0])
rule = seconds // 960

df.index = pd.to_datetime(df[0], unit='s')
df.resample('%sS' % rule).mean()