熊猫数据帧中每天的条件计数



我有一个数据集,每分钟从一台设备上读取一次读数(储罐液位(,我想创建一个新的数据集(数据帧(,其中包含每天的样本数和高于设定值的读数。

Noxious Tank Level.MIN  Noxious Tank Level.MAX           Date_Time
0                         9.32                    9.33 2019-12-31 05:01:00
1                         9.32                    9.34 2019-12-31 05:02:00
2                         9.32                    9.35 2019-12-31 05:03:00
3                         9.31                    9.35 2019-12-31 05:04:00
4                         9.31                    9.35 2019-12-31 05:05:00
...                        ...                     ...                 ...
528175                    2.98                    3.01 2020-12-31 23:56:00
528176                    2.98                    3.02 2020-12-31 23:57:00
528177                    2.98                    3.01 2020-12-31 23:58:00
528178                    2.98                    3.02 2020-12-31 23:59:00
528179                    2.98                    2.99 2021-01-01 00:00:00

使用lamdba函数,我可以查看每个值是否为溢出(储罐液位>设置点(-我还通过Date_Time:对数据帧进行了索引

df['Overflow'] = df.apply(lambda x: True if x['Noxious Tank Level.MIN'] > 89 else False , axis=1)

Noxious Tank Level.MIN  Noxious Tank Level.MAX  Overflow
Date_Time                                                                    
2019-12-31 05:01:00                    9.32                    9.33     False
2019-12-31 05:02:00                    9.32                    9.34     False
2019-12-31 05:03:00                    9.32                    9.35     False
2019-12-31 05:04:00                    9.31                    9.35     False
2019-12-31 05:05:00                    9.31                    9.35     False
...                                     ...                     ...       ...
2020-12-31 23:56:00                    2.98                    3.01     False
2020-12-31 23:57:00                    2.98                    3.02     False
2020-12-31 23:58:00                    2.98                    3.01     False
2020-12-31 23:59:00                    2.98                    3.02     False
2021-01-01 00:00:00                    2.98                    2.99     False

现在,我想计算每天的样本数量和Overflow列中"True"值的数量,以计算溢出中每天的分数

我觉得resamplegroupby将是最好的选择,但我不知道如何使用这些计数创建新的数据集,并包括Overflow列中的条件计数

首次使用:

df['Overflow'] = df['Noxious Tank Level.MIN'] > 89

然后对于计数Trues使用sum,对于计数值使用size每天/日期:

df1 = df.resample('d')['Overflow'].agg(['sum','size'])

或者:

df1 = df.groupby(pd.Grouper(freq='D'))['Overflow'].agg(['sum','size'])

或者:

df2 = df.groupby(df.index.date)['Overflow'].agg(['sum','size'])

相关内容

  • 没有找到相关文章

最新更新