首页 > 解决方案 > 数据缺失时用默认值填充图表

问题描述

我正在跟踪几个变量并随着时间的推移跟踪它们。我创建了一个图表,其中 x 轴每天都有一天中的每个小时。为此,我只需这样做:

df.myvar.astype(int).groupby(df.date_time.dt.floor("1H").agg('median')

基本上,每天的每一个小时我都有几行,每一行都有不同变量的一些数值,我正在跟踪中值并绘制它们。

问题是,一些变量的值无效,所以我要删除它们,在极少数情况下,这会删除特定小时的所有条目。

这意味着,当我去绘制图表时,由于我错过了这些值,我无法将该变量的图表覆盖到我的一般图表上,我每小时都有值。

到目前为止,我已经手动解决了这些问题,方法是手动查找缺少值的时间,然后修改代码以绘制两个图表(缺失时间的左侧和右侧)。

有没有办法以编程方式做到这一点,例如通过为缺少所有值的时间插入一些固定值?

请注意:如果可以接受插值,则会提出一个有用的问题。插值不起作用,因为我需要使该值易于识别。我确实想知道该小时存在潜在问题,并且该特定小时的该变量的所有值均无效。

例子:

id         date_time              score
2214431 2019-02-24 01:00:40.674    ?
1412784 2019-02-24 01:17:21.234    ?
1040240 2019-02-24 01:18:17.082    ?
384646  2019-02-24 01:19:26.139  999
3199892 2019-02-24 01:24:15.368    ?
205593  2019-02-24 01:27:35.635    ?
1844551 2019-02-24 01:29:25.712    ?
3132273 2019-02-24 01:35:17.312    ?
2698183 2019-02-24 01:37:40.517    ?
1746449 2019-02-24 01:45:25.807    ?
51911   2019-02-24 01:48:00.468    ?
2513688 2019-02-24 01:52:14.997    ?
285233  2019-02-24 02:02:07.769  999
3117740 2019-02-24 02:03:55.982    ?
1884979 2019-02-24 02:10:19.762  701
3332108 2019-02-24 02:16:22.616  797
2404668 2019-02-24 02:21:08.152  536
2212820 2019-02-24 02:24:07.990  999
2650336 2019-02-24 02:24:36.984  457
570126  2019-02-24 02:25:24.268  587
2288047 2019-02-24 02:28:22.446  712
2144017 2019-02-24 02:28:48.892  530
1448679 2019-02-24 02:28:54.745  621
205518  2019-02-24 02:29:04.826  713
664708  2019-02-24 02:30:55.712  649
3220428 2019-02-24 02:31:35.816    ?
3291801 2019-02-24 02:32:12.968  499
1379368 2019-02-24 02:33:44.287  698
3224687 2019-02-24 02:33:46.440  999

在上面的示例中,可以看到在凌晨 1 点到凌晨 2 点之间,分数值只有 999 和 ?,这是不可接受的值。因此,分组依据的结果在凌晨 1 点留下空白,因为我需要在分组依据之前删除它们。

标签: python-3.xpandasdataframegroup-by

解决方案


推荐阅读