【问题标题】:python calculate min/max, std for a time seriespython计算时间序列的最小值/最大值,标准差
【发布时间】:2016-05-10 17:17:44
【问题描述】:

我的数据集是这样的,

日期时间乘积 value1 value2 value3

2015-10-01 09:00:00.000 P1 1 2 3

2015-10-01 10:00:00.000 P1 2 3 4

2015-10-01 11:00:00.000 P1 5 6 7

2015-10-01 09:00:00.000 P2 1 2 3

2015-10-01 10:00:00.000 P2 2 3 4

2015-10-01 11:00:00.000 P2 5 6 7

..

..

2015-10-02 09:00:00.000 P1 1 2 3

2015-10-02 10:00:00.000 P1 2 3 4

2015-10-02 11:00:00.000 P1 5 6 7

2015-10-02 09:00:00.000 P2 1 2 3

2015-10-02 10:00:00.000 P2 2 3 4

2015-10-02 11:00:00.000 P2 5 6 7

有 10 种不同类型的产品。我们称之为 P1、P2、P3、P4、....P10
我想计算给定产品的最小值/最大值、平均值、标准值 1/2/3(比如 P1)
在一个日期时间范围内(比如从 2​​015-10-01 11:00:00.000 到 2015-10-02 10:00:00.000)

感谢您的帮助!

【问题讨论】:

  • 您已经尝试过什么,但它是如何未能达到您想要的效果的?

标签: python pandas


【解决方案1】:

您的datetime 似乎是两列字符串。如果是这种情况,我会创建一个时间戳列,然后进行过滤。最后可以groupbyproduct 然后聚合。 (假设您的数据在 pandas 数据框中 dfnp 是 numpy)

df['datetime'] = pd.DatetimeIndex(df['date'] + ' ' + df['time'])

print df[df['datetime'].between(pd.Timestamp('2015-10-01 11:00:00.000'),pd.Timestamp('2015-10-02 10:00:00.000'))].groupby(['product'])[['value1', 'value2', 'value3']].agg([min, max, np.mean, np.std])

【讨论】:

  • 效果很好!太感谢了。另一个问题,我可以在 pandas 中进行 SQL 类型的操作吗?例如 select * from pd where product in (P1, P2) and value1 >100
  • df[df['product'].isin(['P1','P2') & (df['value1']>100)]
猜你喜欢
  • 2021-09-23
  • 1970-01-01
  • 2020-02-11
  • 1970-01-01
  • 2014-01-02
  • 2022-01-27
  • 2021-06-01
  • 2021-06-03
  • 2014-11-27
相关资源
最近更新 更多