使用GroupBy的条件格式

时间:2019-06-07 13:39:55

标签: python pandas

我正在使用移动数据-基本上是用户及其与不同位置的传感器的交互。我需要根据各种因素定义用户类型。当前,定义一种用户类型的最简单方法是与各种传感器进行交互。

在我看来,这应该很简单。我需要通过“用户”列将用户分组在一起,然后在数据集中的“传感器”列中搜索特定的传感器。如果定位了一个特定传感器,则应相应地定义整个组的用户类型。

当我想到它时似乎很容易,但是我很难用Python编写它。我对此很陌生,因此将不胜感激!

因此,我曾经研究过创建组并尝试有条件地格式化单行。

这是我正在使用的一目了然的数据集(我现在将User type设置为0):

         User  User type     Sensor        Date   Time in  Time out  \
0        User 0000043          0  Sensor 17  2019/04/29  08:33:00  08:34:00   
1        User 0000047          0  Sensor 05  2019/04/09  11:36:00  11:36:00   
2        User 0000047          0  Sensor 05  2019/04/09  12:31:00  12:31:00   
3        User 0000047          0  Sensor 05  2019/04/09  12:34:00  12:34:00   
4        User 0000047          0  Sensor 05  2019/04/09  13:47:00  13:47:00   
5        User 0000047          0  Sensor 05  2019/04/09  14:34:00  14:34:00   
6        User 0000047          0  Sensor 05  2019/04/09  15:03:00  15:04:00   
7        User 0000047          0  Sensor 05  2019/04/09  15:14:00  15:14:00   
8        User 0000047          0  Sensor 05  2019/04/09  15:24:00  15:26:00   
9        User 0000047          0  Sensor 05  2019/04/09  15:29:00  15:29:00

我已通过以下代码对数据进行了分组:

rawsorted.groupby('User').Sensor.unique()

这是我尝试对行进行条件格式化:

rawsorted.loc[rawsorted['Sensor'] == 'Sensor 12|Sensor 13|Sensor 15|Sensor 16|Sensor 17|Sensor 23' , 'User type'] = 'NMT'

1 个答案:

答案 0 :(得分:0)

您正在寻找isin

rawsorted.loc[rawsorted['Sensor'].isin('Sensor 12|Sensor 13|Sensor 15|Sensor 16|Sensor 17|Sensor 23'.split('|') , 'User type'] = 'NMT'