Đó là sự khác biệt giữa groupby("x").count
và groupby("x").size
trong gấu trúc?Sự khác nhau giữa kích thước và số lượng gấu trúc là gì?
Kích thước chỉ loại trừ không?
Đó là sự khác biệt giữa groupby("x").count
và groupby("x").size
trong gấu trúc?Sự khác nhau giữa kích thước và số lượng gấu trúc là gì?
Kích thước chỉ loại trừ không?
size
bao gồm NaN
giá trị, count
không:
In [46]:
df = pd.DataFrame({'a':[0,0,1,2,2,2], 'b':[1,2,3,4,np.NaN,4], 'c':np.random.randn(6)})
df
Out[46]:
a b c
0 0 1 1.067627
1 0 2 0.554691
2 1 3 0.458084
3 2 4 0.426635
4 2 NaN -2.238091
5 2 4 1.256943
In [48]:
print(df.groupby(['a'])['b'].count())
print(df.groupby(['a'])['b'].size())
a
0 2
1 1
2 2
Name: b, dtype: int64
a
0 2
1 1
2 3
dtype: int64
Chỉ cần thêm một chút để trả lời @ Edchum của, ngay cả khi dữ liệu không có giá trị NA, kết quả của count() là tiết hơn, sử dụng ví dụ trước:
grouped = df.groupby('a')
grouped.count()
Out[197]:
b c
a
0 2 2
1 1 1
2 2 3
grouped.size()
Out[198]:
a
0 2
1 1
2 3
dtype: int64
Có vẻ như' size' là thanh lịch tương đương với 'count' trong gấu trúc. –
Khi chúng tôi xử lý các khung dữ liệu bình thường thì sự khác biệt sẽ là giá trị NAN, nghĩa là không tính giá trị NAN trong khi đếm hàng. Nhưng nếu chúng ta sử dụng các hàm này với nhóm vào lúc đó, để có được kết quả chính xác bằng count(), chúng ta phải kết hợp bất kỳ trường số nào với nhóm bằng cách lấy số nhóm chính xác cho kích thước() ở đó không cần loại liên kết này.
Tài liệu cho biết, kích thước đó "trả về số phần tử trong NDFrame" và đếm "chuỗi trả về có số quan sát không phải NA/null trên trục được yêu cầu. Hoạt động với dữ liệu điểm không nổi" (phát hiện NaN và Không) " – Hamsternik