2015-07-08 32 views
10

Câu hỏi của tôi rất đơn giản, tôi có một dataframe và tôi groupby kết quả dựa trên một cột và nhận được kích thước như thế này:Python gấu trúc nhóm dataframe bởi dựa trên một điều kiện

df.groupby('column').size() 

Bây giờ vấn đề là tôi chỉ muốn những người có kích thước lớn hơn X. Tôi tự hỏi nếu tôi có thể làm điều đó bằng cách sử dụng một hàm lambda hoặc bất cứ điều gì tương tự? Tôi đã thử điều này:

df.groupby('column').size() > X 

Và nó in ra một số giá trị True và False.

Cảm ơn

Trả lời

10

Kết quả phân nhóm là một DataFrame thường xuyên, vì vậy chỉ cần lọc các kết quả như thường lệ:

import pandas as pd 

df = pd.DataFrame({'a': ['a', 'b', 'a', 'a', 'b', 'c', 'd']}) 
after = df.groupby('a').size() 
>> after 
a 
a 3 
b 2 
c 1 
d 1 
dtype: int64 

>> after[after > 2] 
a 
a 3 
dtype: int64 
+0

xứng đáng huy hiệu màu xanh lá cây. Cảm ơn! –

+0

@AzizAlto :-) Cảm ơn –

9

Hãy thử mã này:

df.groupby('column').filter(lambda group: group.size > X) 
Các vấn đề liên quan