熊猫数据框与时间序列数据

时间:2015-12-31 01:51:29

标签: python pandas matplotlib dataframe histogram

我刚刚开始学习大熊猫。我遇到了这个;

d = date_range('1/1/2011', periods=72, freq='H')
s = Series(randn(len(rng)), index=rng)

我已经了解上述数据是什么意思,我尝试过使用IPython:

import numpy as np
from numpy.random import randn
import time
r = date_range('1/1/2011', periods=72, freq='H')
r
len(r)
[r[i] for i in range(len(r))]
s = Series(randn(len(r)), index=r)
s
s.plot()
df_new = DataFrame(data = s, columns=['Random Number Generated'])

创建数据框是否正确?

给出的下一步是:返回一个系列,其中系列中数字和下一个数字之间的绝对差值小于0.5

我是否需要找到生成的每个随机数之间的差异,并且只存储abs diff所在的集合。 0.5?有人可以解释我怎么能在熊猫中做到这一点?

此外,我尝试将系列绘制为直方图;

 df_new.diff().hist()

图表显示x为随机数,Y轴为0到18(我不明白)。有人可以向我解释这个吗?

1 个答案:

答案 0 :(得分:1)

除了@ Dthal的评论之外,还给你一些指示:

r = pd.date_range('1/1/2011', periods=72, freq='H')

正如@Dthal评论的那样,您可以简化从正态分布中随机抽样的DataFrame的创建,如下所示:

df = pd.DataFrame(index=r, data=randn(len(r)), columns=['Random Number Generated'])

仅显示与前一个值相差values的{​​{1}}:

0.5

可以简化使用diff = df.diff() diff[abs(diff['Random Number Generated']) < 0.5] Random Number Generated 2011-01-01 02:00:00 0.061821 2011-01-01 05:00:00 0.463712 2011-01-01 09:00:00 -0.402802 2011-01-01 11:00:00 -0.000434 2011-01-01 22:00:00 0.295019 2011-01-02 03:00:00 0.215095 2011-01-02 05:00:00 0.424368 2011-01-02 08:00:00 -0.452416 2011-01-02 09:00:00 -0.474999 2011-01-02 11:00:00 0.385204 2011-01-02 12:00:00 -0.248396 2011-01-02 14:00:00 0.081890 2011-01-02 17:00:00 0.421897 2011-01-02 18:00:00 0.104898 2011-01-03 05:00:00 -0.071969 2011-01-03 15:00:00 0.101156 2011-01-03 18:00:00 -0.175296 2011-01-03 20:00:00 -0.371812 来消除缺失值。

.dropna() docs告知pandas.Series.hist()的默认号码为bins,因此您需要10的号码,因此结果为bars这种情况大致对称,大约为[-4, +4]范围内的零。

  

Series.hist(by = None,ax = None,grid = True,xlabelsize = None,xrot = None,ylabelsize = None,yrot = None,figsize = None,bins = 10,** kwds)       diff.hist()

enter image description here

相关问题