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

Thay đổi đường chéo chính DataFrame thành 1 Python pandas

Giả sử bạn có DataFrame vuông (số hàng = số cột) và muốn gán giá trị 1 cho tất cả phần tử trên đường chéo chính.

Giải pháp

  • Tạo DataFrame vuông.
  • Duyệt i từ 0 đến n-1, gán df.iloc[i, i] = 1.

Mã ví dụ

import pandas as pd
import numpy as np

data = [[10,20,30],[40,50,60],[70,80,90]]
df = pd.DataFrame(data)

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

for i in range(len(df)):
    df.iloc[i, i] = 1

print("\nSau khi gán đường chéo = 1:\n", df)

Kết quả

DataFrame gốc:
    0   1   2
0  10  20  30
1  40  50  60
2  70  80  90

Sau khi gán đường chéo = 1:
    0   1   2
0   1  20  30
1  40   1  60
2  70  80   1

Cách khác (vectorized):

import numpy as np
df.values[np.arange(len(df)), np.arange(len(df))] = 1

Nhanh hơn cho DataFrame lớn.