สมมติว่าคุณมี dataframe
0 1 2
0 10 20 30 1 40 50 60 2 70 80 90
ผลลัพธ์สำหรับการแทนที่ 1 ด้วยเส้นทแยงมุมของดาต้าเฟรมคือ −
0 1 2 0 1 20 30 1 40 1 60 2 70 80 1
วิธีแก้ปัญหา
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนด้านล่าง -
-
กำหนดดาต้าเฟรม
-
สร้างการซ้อนลูปเพื่อเข้าถึงแถวและคอลัมน์ทั้งหมด
for i in range(len(df)): for j in range(len(df)):
-
ตรวจสอบว่าเงื่อนไขตรงกับเส้นทแยงมุมหรือไม่ หากตรงกัน ให้แทนที่ตำแหน่งด้วย 1 ซึ่งกำหนดไว้ด้านล่าง
if i == j: df.iloc[i ,j] = 1
ตัวอย่าง
ให้เราดูการใช้งานด้านล่างเพื่อความเข้าใจที่ดีขึ้น
import pandas as pd import numpy as np data = [[10,20,30],[40,50,60],[70,80,90]] df = pd.DataFrame(data) print("Original DataFrame is\n ", df) for i in range(len(df)): for j in range(len(df)): if i == j: df.iloc[i ,j] = 1 print("Modified DataFrame is\n" ,df)
ผลลัพธ์
Original DataFrame is 0 1 2 0 10 20 30 1 40 50 60 2 70 80 90 Modified DataFrame is 0 1 2 0 1 20 30 1 40 1 60 2 70 80 1