Để có được số lượng hàng trong việc sử dụng dataframe:
df.shape[0]
(và df.shape[1]
để nhận số cột).
Là một thay thế, bạn có thể sử dụng
len(df)
hoặc
len(df.index)
(và len(df.columns)
cho các cột)
shape
là linh hoạt hơn và thuận tiện hơn len()
, đặc biệt là cho công việc tương tác (chỉ cần được thêm vào cuối), nhưng len
nhanh hơn một chút (xem als o this answer).
Để tránh: count()
vì nó trả số lượng phi NA/quan sát rỗng trên yêu cầu trục
len(df.index)
nhanh
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(24).reshape(8, 3),columns=['A', 'B', 'C'])
df['A'][5]=np.nan
df
# Out:
# A B C
# 0 0 1 2
# 1 3 4 5
# 2 6 7 8
# 3 9 10 11
# 4 12 13 14
# 5 NaN 16 17
# 6 18 19 20
# 7 21 22 23
%timeit df.shape[0]
# 100000 loops, best of 3: 4.22 µs per loop
%timeit len(df)
# 100000 loops, best of 3: 2.26 µs per loop
%timeit len(df.index)
# 1000000 loops, best of 3: 1.46 µs per loop
df.__len__
chỉ là một cuộc gọi đến len(df.index)
import inspect
print(inspect.getsource(pd.DataFrame.__len__))
# Out:
# def __len__(self):
# """Returns length of info axis, but here we use the index """
# return len(self.index)
Tại sao bạn không nên sử dụng count()
df.count()
# Out:
# A 7
# B 8
# C 8
Ok nó rất đơn giản. len (dataframe) là câu trả lời dễ dàng. in len (df3) – IcemanBerlin
Nó hoạt động ... giống như một fyi có vẻ như bạn đang rời khỏi '()', vì vậy khi bạn gọi 'cnt = df.count' bạn đang thực sự thiết lập' cnt' bằng một phương thức của khung dữ liệu, không phải là kết quả của phương thức đó. Hãy thử 'cnt = df.count(); in cnt' để xem tôi đang nói về cái gì. – tshauck
Ah. cảm ơn tshauck, tôi đoán đó thực sự là những gì tôi đang cố gắng làm. Kết quả của bài kiểm tra đó thực sự đã in số lượng cho mỗi trường i.e.Field1 = 10 và dòng kế tiếp Field2 = 10. Tôi đoán bạn cũng có thể áp dụng số đếm cho một trường cụ thể? – IcemanBerlin