Viết mã hiệu quả với pandas
Leonidas Souliotis
PhD Candidate
| 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)
.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%
.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