編寫一個Python程式,將給定DataFrame的對角線元素修改為1。


假設你有一個DataFrame

0 1 2

0 10 20 30 1 40 50 60 2 70 80 90

將DataFrame的對角線元素替換為1的結果是:

0 1 2
0 1 20 30 1 40 1 60 2 70 80 1

解決方案

為了解決這個問題,我們將遵循以下步驟:

  • 定義一個DataFrame

  • 建立巢狀迴圈來訪問所有行和列。

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

更新於:2021年2月24日

瀏覽量:328

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.