用 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

相关文章