用 Python 编写一个程序,将给定 DataFrame 的对角线修改为 1
pythonpandasserver side programmingprogramming
假设,您有一个数据框
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("原始 DataFrame 是\n ", df) for i in range(len(df)): for j in range(len(df)): if i == j: df.iloc[i ,j] = 1 print("修改后的 DataFrame 是\n" ,df)
输出
原始 DataFrame 是 0 1 2 0 10 20 30 1 40 50 60 2 70 80 90 修改后的 DataFrame 是 0 1 2 0 1 20 30 1 40 1 60 2 70 80 1