编写一个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

启动你的职业生涯

通过完成课程获得认证

开始学习
广告