首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在熊猫Python中切换之前,计算实例出现的次数

在熊猫Python中切换之前,计算实例出现的次数
EN

Stack Overflow用户
提问于 2022-01-03 03:35:05
回答 1查看 46关注 0票数 0

我有一个类似这样的数据框架,它记录特定时间的IP类型。

代码语言:javascript
复制
IP   Time                 Type  
101  2018-10-16 01:07:11  A     
101  2018-10-16 01:08:34  A     
101  2018-10-16 02:54:11  B     
101  2018-10-16 14:07:39  A     
102  2018-10-17 01:09:10  A     
102  2018-10-17 01:38:24  A     
102  2018-10-17 02:44:10  A     
102  2018-10-17 14:17:40  C     

如何创建一个新列TimeCount来跟踪IP切换到新类型之前出现的次数?

预期产出如下:

代码语言:javascript
复制
IP   Time                 Type  TimeCount
101  2018-10-16 01:07:11  A     2
101  2018-10-16 01:08:34  A     2
101  2018-10-16 02:54:11  B     1
101  2018-10-16 14:07:39  A     1
102  2018-10-17 01:09:10  A     3
102  2018-10-17 01:38:24  A     3
102  2018-10-17 02:44:10  A     3
102  2018-10-17 14:17:40  C     1

我想我应该使用shift(),但不知道如何将它应用于熊猫。如果它从不切换,只需计算它作为最后一个类型出现的次数。

EN

回答 1

Stack Overflow用户

发布于 2022-01-03 03:39:51

让我们尝试使用groupbycumsum创建键,然后执行transform

代码语言:javascript
复制
s = df.groupby('IP')['Type'].apply(lambda x : x.ne(x.shift()).cumsum())
df['new'] = df['Type'].groupby([df['IP'],s]).transform('count')
df
             IP      Time Type  new
101  2018-10-16  01:07:11    A    2
101  2018-10-16  01:08:34    A    2
101  2018-10-16  02:54:11    B    1
101  2018-10-16  14:07:39    A    1
102  2018-10-17  01:09:10    A    3
102  2018-10-17  01:38:24    A    3
102  2018-10-17  02:44:10    A    3
102  2018-10-17  14:17:40    C    1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70561462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档