gpt4 book ai didi

python - 在 Pandas 中寻找外表

转载 作者:太空宇宙 更新时间:2023-11-04 02:52:40 26 4
gpt4 key购买 nike

我有一个类似的数据框

  ABC  EFG  HIJ

1 a#@! !@# a

2 a#@! !@# b

3 a#@! !@# a

4 a#@! !@# b

5 a#@! !@# a

6 a#@! !@# a

7 a#@! !@# a

8 a#@! !@# a

9 a#@! !@# a

10 a#@! !@# a

....

666666 a#@! !@# a

666667 a#@! !@# b

666668 a#@! !@# a

我想知道是这样的

a : 300000(值 'a' 计数)

b:366668(值“b”计数)

外观最大长度 a : 11

最大长度外观 b : 5

如何使用 pandas 和 numpy 获取此值?

最佳答案

我想你需要value_counts获取 HIJ 中值的大小:

s = df['HIJ'].value_counts()
print (s)
a 10
b 3
Name: HIJ, dtype: int64

对于最大的连续值,通过与移位列和 cumsum 进行比较,获取帮助程序 Series然后 groupbyHIJs1 列并汇总 size .输出是 MultiIndex,所以另一个 groupby 按第一级聚合 max:

s1 = (df['HIJ'] != df['HIJ'].shift()).cumsum()
print (s1)
1 1
2 2
3 3
4 4
5 5
6 5
7 5
8 5
9 5
10 5
666666 5
666667 6
666668 7
Name: HIJ, dtype: int32

print (df.groupby(['HIJ', s1]).size().groupby(level=0).max())
HIJ
a 7
b 1
dtype: int64

---

如果需要多列统计:

s = df.groupby(['ABC','EFG','HIJ']).size().reset_index(name='COUNT')
print (s)
ABC EFG HIJ COUNT
0 a#@! !@# a 10
1 a#@! !@# b 3

s = df.groupby(['ABC','EFG','HIJ', s1]).size()
.groupby(level=[0,1,2]).max().reset_index(name='LONGEST')
print (s)
ABC EFG HIJ LONGEST
0 a#@! !@# a 7
1 a#@! !@# b 1

关于python - 在 Pandas 中寻找外表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43308180/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com