Định vị hàng: .iloc[] và .loc[]

Viết mã hiệu quả với pandas

Leonidas Souliotis

PhD Candidate

Bộ dữ liệu poker

S1 R1 S2 R2 S3 R3 S4 R4 S5 R5
1 10 J K 4 A
2 J K 10 Q A
3 Q J K 10 A
S1 R1 S2 R2 S3 R3 S4 R4 S5 R5
1 2 10 3 11 3 13 4 4 1 1
2 2 11 2 13 2 10 2 12 2 1
3 3 12 3 11 3 13 3 10 3 1

Sn: chất của lá thứ n

1 (Cơ), 2 (Rô), 3 (Tép), 4 (Bích)

Rn: bậc của lá thứ n

1 (Át), 2–10, 11 (J), 12 (Q), 13 (K)

Viết mã hiệu quả với pandas

Định vị hàng mục tiêu

.loc[] — định vị theo tên chỉ mục

# Chỉ định phạm vi hàng cần chọn 
rows = range(0, 500)
# Đo thời gian chọn hàng bằng .loc[]
loc_start_time = time.time()
data.loc[rows]    
loc_end_time = time.time()

print("Time using .loc[] : {} sec".format(
            loc_end_time - loc_start_time))
Time using .loc[]: 0.001951932 seconds

.iloc[] — định vị theo số chỉ mục

# Chỉ định phạm vi hàng cần chọn 
rows = range(0, 500)
# Đo thời gian chọn hàng bằng .iloc[]
iloc_start_time = time.time()
data.iloc[rows]    
iloc_end_time = time.time()

print("Time using .iloc[]: {} sec".format(
            iloc_end_time - iloc_start_time)
Time using .iloc[] : 0.0007140636 sec
Difference in speed: 173.355592654%
Viết mã hiệu quả với pandas

Định vị cột mục tiêu

.iloc[] — định vị theo số chỉ mục

iloc_start_time = time.time()
data.iloc[:,:3]
iloc_end_time = time.time()
print("Time using .iloc[]: {} sec".format(
            iloc_end_time - iloc_start_time))
Time using .iloc[]: 0.00125193595886 sec

Định vị cột theo tên

names_start_time = time.time()
data[['S1', 'R1', 'S2']]
names_end_time = time.time()
print("Time using selection by name: {} sec".format(
            names_end_time - names_start_time))
Time using selection by name: 0.000964879989624 sec
Difference in speed: 29.7504324188%
Viết mã hiệu quả với pandas

Hãy thực hành!

Viết mã hiệu quả với pandas

Preparing Video For Download...