2015-04-24 61 views
17

Tôi đang làm việc bằng Python với một chú gấu trúc DataFrame của trò chơi điện tử, mỗi trò chơi có một thể loại. Tôi đang cố gắng xóa bất kỳ trò chơi video nào có thể loại xuất hiện ít hơn một số lần trong DataFrame, nhưng tôi không có đầu mối về cách thực hiện điều này. Tôi đã tìm thấy a StackOverflow question mà dường như có liên quan, nhưng tôi không thể giải mã được tất cả (có thể vì tôi chưa bao giờ nghe nói về R và bộ nhớ của tôi về lập trình hàm là tốt nhất).Làm cách nào để lọc một DataFrame gấu trúc dựa trên số lượng giá trị?

Trợ giúp?

Trả lời

29

Sử dụng groupby filter:

In [11]: df = pd.DataFrame([[1, 2], [1, 4], [5, 6]], columns=['A', 'B']) 

In [12]: df 
Out[12]: 
    A B 
0 1 2 
1 1 4 
2 5 6 

In [13]: df.groupby("A").filter(lambda x: len(x) > 1) 
Out[13]: 
    A B 
0 1 2 
1 1 4 

tôi khuyên bạn nên đọc split-combine-section of the docs.

+0

Tôi thực sự đã thử điều này trước nhưng không thể làm cho nó hoạt động. Hóa ra vấn đề là với chức năng của tôi. Đã sửa! – uchuujin

+1

Và chúng tôi thậm chí có thể nhóm theo cấp MultiIndex: groupby (level = ...). Chính xác những gì tôi cần – Winand

Các vấn đề liên quan