【问题标题】:How do I create a histogram of duration of NaN intervals?如何创建 NaN 间隔持续时间的直方图?
【发布时间】:2020-05-19 14:04:30
【问题描述】:

我有一个按日期时间(连续 1 分钟数据)索引的大型数据框,其中包含大量 NaN。

我想为 NaN 的出现生成一个直方图,作为 NaN 间隔长度的函数(例如,x 轴将是 NaN“孔”和 y 轴的天数大小该特定孔的计数)。

假设我的数据如下所示:

2015-01-01 05:57:00     2.136221
2015-01-01 05:58:00     4.101965
2015-01-01 05:59:00     NaN
2015-01-01 06:00:00     8.082413
2015-01-01 06:01:00     9.035858
2015-01-01 06:02:00    10.059280
2015-01-01 06:03:00    11.143933
2015-01-01 06:04:00    12.281069
2015-01-01 06:05:00    NaN
2015-01-01 06:06:00    NaN
2015-01-01 06:07:00    NaN
2015-01-01 06:08:00    16.925832
2015-01-01 06:09:00    18.150440
2015-01-01 06:10:00    19.383795
2015-01-01 06:11:00    NaN
2015-01-01 06:12:00    NaN
2015-01-01 06:13:00    NaN
2015-01-01 06:14:00    NaN
2015-01-01 06:15:00    NaN
2015-01-01 06:16:00    26.530258
2015-01-01 06:17:00    27.868579
2015-01-01 06:18:00    29.320614
2015-01-01 06:19:00    NaN
2015-01-01 06:20:00    NaN
2015-01-01 06:21:00    NaN
2015-01-01 06:22:00    35.854773
2015-01-01 06:23:00    37.639202
2015-01-01 06:24:00    39.406136

然后我想要一个直方图,其中 1 次出现 1 分钟孔,2 次出现 3 分钟孔,1 次出现 5 分钟孔。

在我的数据中,NaN 间隔要大得多,所以也许我想以小时或天为单位测量它们的长度。

【问题讨论】:

  • 您的帖子中没有问题。通常,问题以问号“?”结束句子来表示,并且通常包括明确的疑问句,例如“我如何……”或“这是什么……”如果您要求某人编写代码以做你想做的事,这对 Stack Overflow 来说不是一个合适的问题。如果您在任务的特定部分遇到问题,您应该说明您遇到了什么问题——您不了解什么,您需要什么特定功能,等等。
  • 编辑了标题。抱歉,我无法添加代码,我在这里迷路了。

标签: python pandas datetime histogram nan


【解决方案1】:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.DataFrame({'feature1': [1, np.NaN, 2, np.NaN, 3, 2, 3, 4, np.NaN],
               'feature2': [4, np.NaN, 3, 4, np.NaN, 4, 3, np.NaN, np.NaN]})

def foo(start,stop,df,feat):
    counts = df.loc[start:stop,feat].value_counts(dropna=False)
    counts.plot.bar(grid=True)
    plt.show()

foo(3,8,df,'feature2')

这就是你要找的吗?

【讨论】:

  • 不完全是。我编辑了这个问题,所以也许它更清楚。谢谢!
猜你喜欢
  • 2013-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-01
  • 2021-12-17
  • 1970-01-01
相关资源
最近更新 更多