wol*_*oor 39 python group-by dataframe pandas pandas-groupby
这将是有用的,所以我知道有多少我必须执行计算的唯一组.谢谢.
假设调用groupby对象dfgroup
.
cs9*_*s95 30
建立
df = pd.DataFrame({'A': list('aabbcccd'), 'B': 'x'})
df
A B
0 a x
1 a x
2 b x
3 b x
4 c x
5 c x
6 c x
7 d x
g = df.groupby(['A'])
Run Code Online (Sandbox Code Playgroud)
从v0.23开始,有多种可能的选项可供使用.
ngroups
较新版本的groupby API提供了此(未记录的)属性,该属性存储GroupBy对象中的组数.
g.ngroups
# 6
Run Code Online (Sandbox Code Playgroud)
GroupBy.groups
您可以拨打len
上len
对象直接,或在GroupBy
属性.该代表委托GroupBy.groups
检索组的数量.
g.groups
# {'a': Int64Index([0, 1], dtype='int64'),
# 'b': Int64Index([2, 3], dtype='int64'),
# 'c': Int64Index([4, 5, 6], dtype='int64'),
# 'd': Int64Index([7], dtype='int64')}
Run Code Online (Sandbox Code Playgroud)
len(g)
# 6
len(g.groups)
# 6
Run Code Online (Sandbox Code Playgroud)
为了完整性,您还可以迭代组.
sum(1 for _ in g)
# 6
Run Code Online (Sandbox Code Playgroud)
如果你想真正打印这些组,你可以做类似的事情
g.size()
A
a 2
b 2
c 3
d 1
dtype: int64
Run Code Online (Sandbox Code Playgroud)
附录
如果您要查找每个组的大小,可以使用GroupBy
:
df = pd.DataFrame({'A': list('aabbcccd'), 'B': 'x'})
df
A B
0 a x
1 a x
2 b x
3 b x
4 c x
5 c x
6 c x
7 d x
g = df.groupby(['A'])
Run Code Online (Sandbox Code Playgroud)
请注意,也GroupBy.size
计算NaN.如果您不想计算NaN,请size
改用.
最后,还有一个选项,GroupBy.count
通过ngroups
它可以得到完全相同的结果,GroupBy.groups
但是在一列而不是两列上进行分组.
归档时间: |
|
查看次数: |
25033 次 |
最近记录: |