Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Thực hiện phép chia nguyên của pandas Series bởi list Python

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=20 thay 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.