Giới thiệu
Phương thức Series.floordiv() trong pandas thực hiện phép chia nguyên (floor division) phần tử tử tương ứng giữa Series và một đối tượng khác (Series, scalar, list, tuple). Phép toán: a // b.
Cú pháp
Series.floordiv(other, level=None, fill_value=None, axis=0)
- other: Series, scalar, list, tuple, array.
- fill_value: Giá trị thay thế cho NaN trong Series hoặc other (mặc định NaN).
Ví dụ 1: Chia cho list, giữ NaN
import pandas as pd
import numpy as np
s = pd.Series({'A': None, 'B': 58, 'C': 85, 'D': 28, 'E': np.nan, 'G': 60})
print("Series gốc:")
print(s)
# Chia nguyên cho list [18, 16, 9, 15, 14, 6]
# Lưu ý: Series có 6 phần tử, list có 6 phần tử → khớp theo vị trí (index không quan trọng)
result = s.floordiv(other=[18, 16, 9, 15, 14, 6])
print("\nKết quả (giữ NaN):")
print(result)
Kết quả 1
Series gốc:
A NaN
B 58.0
C 85.0
D 28.0
E NaN
G 60.0
dtype: float64
Kết quả (giữ NaN):
A NaN
B 3.0
C 9.0
D 1.0
E NaN
G 10.0
dtype: float64
Ví dụ 2: Chia cho list, điền NaN bằng fill_value
result_filled = s.floordiv(other=[18, 16, 9, 15, 14, 6], fill_value=20)
print("\nKết quả (fill_value=20):")
print(result_filled)
Kết quả 2
Kết quả (fill_value=20):
A 1.0
B 3.0
C 9.0
D 1.0
E 1.0
G 10.0
dtype: float64
Giải thích
- Ví dụ 1: NaN tại A và E → kết quả NaN (vì NaN // anything = NaN).
- Ví dụ 2:
fill_value=20thay thế NaN bằng 20 trước khi chia. 20//18=1, 20//14=1. - Phép chia nguyên: 58//18=3, 85//9=9, 28//15=1, 60//6=10.
- Khớp theo vị trí (positional), không theo index label.