繁体   English   中英

根据另一行的值更改熊猫数据框中的一行

[英]Change one row in a pandas dataframe based on the value of another row

我有一个熊猫数据帧,其中包含来自冰淇淋冷冻机的数据。 几列描述了系统中的不同温度以及其他一些内容。 名为“解冻状态”的一列告诉我冷冻机何时解冻以去除具有布尔值的大量冰块。

那些“除霜”是我感兴趣的,所以我添加了另一列名为“around_defrost”。 该列目前只有 NaN 值,但只要在距数据框中该特定行 30 分钟内解冻时,我想将它们更改为“真”。 数据每分钟记录一次,因此 30 分钟意味着解冻前的 30 行和解冻后的 30 行需要设置为“真”

我已经尝试使用 itterrows、ittertuples 并通过使用下图所示的索引来做到这一点,但到目前为止 nu 成功。 如果有人知道如何做到这一点,我将不胜感激!

在此处输入图片说明

您需要使用dataframe.rolling

df = df.sort_values("Time") #sort by Time

df['around_defrost'] = df['Defrost status'].rolling(60, center=True, min_periods = 0).apply(
                          lambda x: True if True in x else False, raw=True)

编辑:您可能需要rolling(61, center=True)因为您想考虑有问题的行和前后 30。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM