首页 > 解决方案 > 在熊猫中第一次达到设定值时重命名

问题描述

我有一个数据集,当数据第一次达到 <0.5 时,我想给它一个不同的名称。我只想为该特定事件命名,而不是之后的事件。到目前为止,我只能识别为一个组,见下文。

这可能吗?

样本数据集:

日期和时间 过程价值 地位
2020-06-07 00:00 8.2 一个
2020-06-07 01:00 6.5 一个
2020-06-07 02:00 4.3 一个
2020-06-07 03:00 3.6 一个
2020-06-07 04:00 0
2020-06-07 05:00 0
2020-06-07 06:00 0

预期结果:

日期和时间 过程价值 地位
2020-06-07 00:00 8.2 一个
2020-06-07 01:00 6.5 一个
2020-06-07 02:00 4.3 一个
2020-06-07 03:00 3.6 一个
2020-06-07 04:00 0 停止
2020-06-07 05:00 0
2020-06-07 06:00 0

标签: pythonpandas

解决方案


使用布尔值,然后.groupby.idxmin()获取每个组的最小索引。

然后使用广播你的价值.loc

s = df.loc[df['Process value'].le(0.5)].groupby('Status').idxmin()['Process value']

df.loc[s,'Status'] = 'stopped'


print(df)

   Date and Time  Process value   Status
0  2020-06-07 00:00            8.2        A
1  2020-06-07 01:00            6.5        A
2  2020-06-07 02:00            4.3        A
3  2020-06-07 03:00            3.6        A
4  2020-06-07 04:00            0.0  stopped
5  2020-06-07 05:00            0.0        B
6  2020-06-07 06:00            0.0        B

推荐阅读