我想做一个计算,当有一组的人,不断跟进。你知道吗
我有一个关于压缩机工作原理的数据库。每5分钟我得到压缩机的状态,如果它是开/关和电力消耗在这一刻。列On_Off
压缩机工作时有1
,关闭时有0
。你知道吗
Compresor = pd.Series([0,0,1,1,1,0,0,1,1,1,0,0,0,0,1,1,1,0], index = pd.date_range('1/1/2012', periods=18, freq='5 min'))
df = pd.DataFrame(Compresor)
df.index.rename("Date", inplace=True)
df.set_axis(["ON_OFF"], axis=1, inplace=True)
df.loc[(df.ON_OFF == 1), 'Electricity'] = np.random.randint(4, 20, df.sum())
df.loc[(df.ON_OFF < 1), 'Electricity'] = 0
df
ON_OFF Electricity
Date
2012-01-01 00:00:00 0 0.0
2012-01-01 00:05:00 0 0.0
2012-01-01 00:10:00 1 4.0
2012-01-01 00:15:00 1 10.0
2012-01-01 00:20:00 1 9.0
2012-01-01 00:25:00 0 0.0
2012-01-01 00:30:00 0 0.0
2012-01-01 00:35:00 1 17.0
2012-01-01 00:40:00 1 10.0
2012-01-01 00:45:00 1 5.0
2012-01-01 00:50:00 0 0.0
2012-01-01 00:55:00 0 0.0
2012-01-01 01:00:00 0 0.0
2012-01-01 01:05:00 0 0.0
2012-01-01 01:10:00 1 14.0
2012-01-01 01:15:00 1 5.0
2012-01-01 01:20:00 1 19.0
2012-01-01 01:25:00 0 0.0
我想做的是只在有一组的时候加上耗电量,再做一个Data.Frame
。例如:
在本例中,压缩机第一次打开是在00:20到00:30之间。在此期间,它消耗了25(10+10+5)。第二次持续时间更长(00:50-01:15),消耗时间间隔为50(10+10+10+10+5+5)。第三次消耗20(10+10)。你知道吗
我想自动做这个我是新来的熊猫,我想不出一个方法来做它。你知道吗
我要做的是创建一个变量,用一个整数作为ID来表示每个活动周期,然后按它分组并对
Electricity
列求和。创建它的一种简单方法是通过累计求和On_Off
(数据必须按递增日期排序)并将结果值乘以On_Off
列。如果你提供一个可复制的例子,你的表在熊猫我可以很快写你的解决方案。你知道吗希望有帮助
假设您有以下数据:
有两种方法:
第一种方法是函数式的,与
pandas
无关:您只需按字段partition
处理数据,即该方法按顺序处理数据,并在每次字段值更改时生成一个新分区。然后可以根据需要简单地汇总每个分区。你知道吗还有
pandas
方法,类似于@ivalesp提到的: 通过移动state列来计算状态的变化。然后你summarize your data frame by the group根据你和你的同龄人最擅长阅读的内容,你可以选择自己的方式。此外,功能方式可能不容易可读,并且也可以用可读的循环语句重写。你知道吗
相关问题 更多 >
编程相关推荐