Vector hóa trên series của Pandas

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

Leonidas Souliotis

PhD Candidate

DataFrame như mảng

Logo GitHub

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

Cách thực hiện vector hóa trong pandas

start_time = time.time()
poker[['R1', 'R2', 'R3', 'R4', 'R5']].sum(axis=1)
print("Time using pandas vectorization: {} sec".format(time.time() - start_time))
Time using pandas vectorization: 0.0026819705 sec
poker[['R1', 'R2', 'R3', 'R4', 'R5']].sum(axis=1).head()
|              |    | 
|--------------|----| 
| 0            | 47 | 
| 1            | 47 | 
| 2            | 47 | 
| 3            | 47 | 
| 4            | 47 | 
| dtype: int64 | -- |
Viết mã hiệu quả với pandas

So sánh với các phương pháp trước

data_generator = data.iterrows()

start_time = time.time()
for index, value in data_generator:
        sum([value[1], value[3], value[5], value[7]])
print("Time using .iterrows(){} seconds" % (time.time() - start_time))
Results from the above operation calculated in 3.37918996 seconds
start_time = time.time()
data[['R1', 'R2', 'R3', 'R4', 'R5']].apply(lambda x: sum(x),axis=1)
print("Results from the above operation calculated in %s seconds" % (time.time() - start_time))
Results from the above operation calculated in 0.637711048 seconds
- Chênh lệch giữa vector hóa và hàm `.iterows()`: 111.800,75%
- Chênh lệch giữa vector hóa và hàm `.apply()`: 20.853%
Viết mã hiệu quả với pandas

Bắt đầu luyện tập!

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

Preparing Video For Download...