pio*_*kuc 15 python group-by pandas
在下面的代码片段中data
是一个pandas.DataFrame
并且indices
是一组列data
.在对数据进行分组后,groupby
我对组的ID感兴趣,但只对那些大小超过阈值的人(例如:3)感兴趣.
group_ids=data.groupby(list(data.columns[list(indices)])).grouper.group_info[0]
Run Code Online (Sandbox Code Playgroud)
现在,如何知道哪个组的大小大于或等于3知道组的ID?我只想要具有一定大小的群组的ID.
#TODO: filter out ids from group_ids which correspond to groups with sizes < 3
Run Code Online (Sandbox Code Playgroud)
And*_*den 24
g = data.groupby(...)
size = g.size()
size[size > 3]
Run Code Online (Sandbox Code Playgroud)
例如,这里只有一个大小> 1的组:
In [11]: df = pd.DataFrame([[1, 2], [3, 4], [1,6]], columns=['A', 'B'])
In [12]: df
Out[12]:
A B
0 1 2
1 3 4
2 1 6
In [13]: g = df.groupby('A')
In [14]: size = g.size()
In [15]: size[size > 1]
Out[15]:
A
1 2
dtype: int64
Run Code Online (Sandbox Code Playgroud)
如果您只想将DataFrame限制为大型组中的那些,则可以使用filter方法:
In [21]: g.filter(lambda x: len(x) > 1)
Out[21]:
A B
0 1 2
2 1 6
Run Code Online (Sandbox Code Playgroud)