Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เขียนโปรแกรม Python เลื่อนคอลัมน์แรก รับค่าจากผู้ใช้ ถ้าหาร 3 และ 5 ลงตัว ให้เติมค่าที่ขาดหายไป

สมมติว่าคุณมี DataFrame และต้องการเลื่อนคอลัมน์แรกไปขวา 1 ตำแหน่ง (shift axis=1) แล้วรับค่าจากผู้ใช้ ถ้าค่าที่ป้อนหาร 3 และ 5 ลงตัว ให้ใช้ค่านั้นเติมค่าที่ขาดหายไป (NaN)

วิธีแก้ปัญหา

  1. สร้าง DataFrame
  2. ใช้ df.shift(periods=1, axis=1) เลื่อนคอลัมน์ไปขวา 1 ช่อง
  3. รับค่าจากผู้ใช้ ตรวจสอบหาร 3 และ 5 ลงตัว
  4. ถ้าผ่าน ใช้ fill_value ใน shift() ถ้าไม่ผ่าน ไม่เติม (เหลือ NaN)

ตัวอย่างโค้ด

import pandas as pd

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

print("DataFrame ต้นฉบับ:\n", data)

user_input = int(input("ป้อนค่า: "))

if user_input % 3 == 0 and user_input % 5 == 0:
    # หาร 3 และ 5 ลงตัว -> ใช้ fill_value
    result = data.shift(periods=1, axis=1, fill_value=user_input)
else:
    # ไม่ผ่าน -> เหลือ NaN
    result = data.shift(periods=1, axis=1)

print("\nผลลัพธ์:")
print(result)

ผลลัพธ์ตัวอย่าง (ป้อน 15)

ป้อนค่า: 15
    one  two  three
0  15.0    1   10.0
1  15.0    2   20.0
2  15.0    3   30.0

ผลลัพธ์ตัวอย่าง (ป้อน 3)

ป้อนค่า: 3
    one  two  three
0  NaN  1.0  10.0
1  NaN  2.0  20.0
2  NaN  3.0  30.0

คำอธิบาย:

  • shift(periods=1, axis=1): เลื่อนคอลัมน์ไปขวา 1 ตำแหน่ง คอลัมน์แรกจะกลายเป็น NaN
  • fill_value: ค่าที่ใช้เติมแทน NaN ที่เกิดจากการ shift
  • เงื่อนไข user_input % 3 == 0 and user_input % 5 == 0 หมายถึง หาร 15 ลงตัว (LCM ของ 3 และ 5)