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

Dịch chuyển cột đầu DataFrame, điền giá trị nếu input chia hết 3 và 5 Python

Giả sử bạn dịch chuyển cột sang phải 1 vị trí (shift axis=1), nếu người dùng nhập số chia hết cho 3 và 5 thì điền giá trị đó vào ô trống, ngược lại để NaN.

Giải pháp

  • Tạo DataFrame 3 cột.
  • Dịch chuyển: df.shift(periods=1, axis=1).
  • Nhập input, kiểm tra user_input % 3 == 0 and user_input % 5 == 0.
  • Nếu đúng: df.shift(periods=1, axis=1, fill_value=user_input).

Mã ví dụ

import pandas as pd

df = pd.DataFrame({
    'one': [1,2,3],
    'two': [10,20,30],
    'three': [100,200,300]
})

print("DataFrame gốc:\n", df)

user_input = int(input("Nhập giá trị: "))

if user_input % 3 == 0 and user_input % 5 == 0:
    result = df.shift(periods=1, axis=1, fill_value=user_input)
else:
    result = df.shift(periods=1, axis=1)

print("\nKết quả:\n", result)

Kết quả mẫu (input=15)

Nhập giá trị: 15
Kết quả:
   one  two  three
0   15    1     10
1   15    2     20
2   15    3     30

Kết quả mẫu (input=3)

Nhập giá trị: 3
Kết quả:
   one  two  three
0  NaN  1.0  10.0
1  NaN  2.0  20.0
2  NaN  3.0  30.0

Giải thích:

  • axis=1: Dịch chuyển theo chiều ngang (cột).
  • periods=1: Dịch 1 bước.
  • fill_value: Giá trị điền vào vị trí mới tạo ra (cột đầu tiên).
  • 15 chia hết cho 3 và 5 → điền 15. 3 không chia hết cho 5 → NaN.