我有一个熊猫数据帧,我想在其中计算一列中特定字符串的连续出现次数.
假设我有以下数据帧.
col1
0 string1
1 string1
2 string1
3 string2
4 string3
5 string3
6 string1
我想将a定义为最大连续出现次数,例如string1或col1中的任何其他字符串.
在这种情况下,如果我想搜索string1并返回2为string3,则ashould返回3.
如何实现?
解决方法:
可以做分组连续值的常用技巧:
df1 = df.groupby((df.col1 != df.col1.shift()).cumsum().rename(None)).col1.agg(['size', 'first'])
# size first
#1 3 string1
#2 1 string2
#3 2 string3
#4 1 string1
然后sort_values drop_duplicates找到最大的:
df1 = df1.sort_values('size').drop_duplicates('first', keep='last').set_index('first').rename_axis(None)
# size
#string2 1
#string3 2
#string1 3
所以现在你可以轻松查找它们:
df1.loc['string1']
#size 3
#Name: string1, dtype: int64
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。