绘制两个datetime64 [ns]之间的差异

用户名

嗨,我有一个包含2个type列的数据框datetime64[ns]我清理数据以删除null(NaT)值(删除两列都为null的行),然后从另一列中减去一列以获得差值。

用分钟仓和10分钟仓绘制此数据的直方图的最佳方法是什么?

我尝试了numpy.histrogram(返回错误:)TypeError: ufunc add cannot use operands with types dtype('<m8[ns]') and dtype('float64')hist(series)(返回错误:)KeyError: 0

当我series.dtype返回时<m8[ns]

塞比克斯

让我们生成一些数据:

import numpy as np
d1 = np.arange(np.datetime64('2014-11-01 12:00'), np.datetime64('2014-11-01 14:00'))
d2 = d1.copy()
np.random.shuffle(d2)
diff = d2 - d1

正如您所发现的,现在差异的类型是一个时间增量。这里是分钟:

>>> diff.dtype
dtype('<m8[m]')

但是我们需要浮点数或整数,因此强制转换数据:

>>> plt.hist(diff.astype(np.int32))
(array([  3.,   9.,  11.,  17.,  17.,  27.,  10.,  12.,  11.,   3.]), array([-115. ,  -92.2,  -69.4,  -46.6,  -23.8,   -1. ,   21.8,   44.6,
         67.4,   90.2,  113. ]), <a list of 10 Patch objects>)
>>> plt.ylabel('time difference [m]')

在此处输入图片说明

详细的技巧:将时间增量转换为整数(也可以是浮点数,但这里不需要它们)。

>>> diff.astype(np.int32)
array([  78,   47,   55,   25,   22,   58,  113,    0,   -3,    7,   95,
        104,   10,   69,   16,   34,   87,   -2,   83,   16,   77,   48,
         10,   30,   52,   31,   47,   54,   83,  -21,   16,   76,   85,
         58,   68,   12,   74,    1,   68,   21,  -15,  -27,   -6,    1,
         -3,   43,  -34,   32,   46,  -22,    5,  -48,   16,  -33,   55,
        -37,  -25,  -53,  -21,  -48,   54,  -51,  -33,   20,  -12,   48,
         14,  -34,    6,   -2,  -36,    6,   20,  -67,  -55,   43,   32,
        -12,   11,   16,    5,  -31,   34,   21,  -20,   11,  -77,  -26,
        -18,    1,  -18,  -68,    6,   19,  -92,   -9,   -9,  -26,  -40,
        -98,  -34,   -1,  -43,  -82,  -65,  -88,  -52,  -32,  -84,  -58,
        -97,  -49,  -13,  -73,  -71, -115,  -71,  -24,  -76,  -35], dtype=int32)

或者,如果您需要几秒钟的时间,请先将它们转换为秒,然后转换为整数:

>>> diff.astype('m8[s]').astype(np.int32)
array([ 4680,  2820,  3300,  1500,  1320,  3480,  6780,     0,  -180,
         420,  5700,  6240,   600,  4140,   960,  2040,  5220,  -120,
        4980,   960,  4620,  2880,   600,  1800,  3120,  1860,  2820,
        3240,  4980, -1260,   960,  4560,  5100,  3480,  4080,   720,
        4440,    60,  4080,  1260,  -900, -1620,  -360,    60,  -180,
        2580, -2040,  1920,  2760, -1320,   300, -2880,   960, -1980,
        3300, -2220, -1500, -3180, -1260, -2880,  3240, -3060, -1980,
        1200,  -720,  2880,   840, -2040,   360,  -120, -2160,   360,
        1200, -4020, -3300,  2580,  1920,  -720,   660,   960,   300,
       -1860,  2040,  1260, -1200,   660, -4620, -1560, -1080,    60,
       -1080, -4080,   360,  1140, -5520,  -540,  -540, -1560, -2400,
       -5880, -2040,   -60, -2580, -4920, -3900, -5280, -3120, -1920,
       -5040, -3480, -5820, -2940,  -780, -4380, -4260, -6900, -4260,
       -1440, -4560, -2100], dtype=int32)

根据数据的精度,可能需要强制转换为浮点数而不是整数:

diff.astype('m8[s]').astype(np.float32)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

绘制两个datetime64 [ns]之间的差异

来自分类Dev

在两个日期时间熊猫之间获取datetime64 [ns]

来自分类Dev

正确地绘制datetime64 [ns]到图形

来自分类Dev

R:计算并绘制两个密度国家之间的差异

来自分类Dev

Matlab_绘制两个图之间的差异

来自分类Dev

C#获取两个DateTime日期之间的差异

来自分类Dev

使用Datetime :: createFromFormat查找两个日期之间的差异

来自分类Dev

计算两个文件的数据之间的DateTime差异

来自分类Dev

SQL:两个日期之间的差异

来自分类Dev

两个肥皂请求之间的差异

来自分类Dev

两个指针变量之间的差异

来自分类Dev

两个相似定义之间的差异

来自分类Dev

查找两个表之间的差异

来自分类Dev

Android两个日期之间的差异

来自分类Dev

发现两个列表之间的差异

来自分类Dev

两个Dirs之间的差异?

来自分类Dev

这两个值之间的差异?

来自分类Dev

得到两个日期之间的差异

来自分类Dev

两个预测函数之间的差异

来自分类Dev

两个Dirs之间的差异?

来自分类Dev

查找两个文件之间的差异

来自分类Dev

两个陈述之间的差异

来自分类Dev

两个日期之间的Python差异

来自分类Dev

两个日期之间的年份差异

来自分类Dev

两个密码查询之间的差异

来自分类Dev

两个词之间的JavaScript差异

来自分类Dev

两个日期之间的差异

来自分类Dev

两个集群之间的差异

来自分类Dev

找出两个值之间的差异?