Python
 Computer >> コンピューター >  >> プログラミング >> Python

特定のDataFrameの対角線を1だけ変更するプログラムをPythonで作成します


データフレームがあると仮定します

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ループを作成して、すべての行と列にアクセスします。

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

  1. Pythonでプログラムを作成して、指定された数のすべての0を5に置き換えます

    整数Nが与えられた場合、タスクは、数値に表示されるすべての0を「5」に置き換えることです。ただし、先頭に「0」が付いている番号は変更されないため、「5」に置き換えることはできません。たとえば、 入力-1 − N = 1007 出力 − 1557 説明 −指定された数値には2つのゼロがあり、「5」に置き換えると1557として出力されます。 入力-2 − N = 00105 出力 − 155 説明 −指定された数値は、無視できる先頭の「0」で始まり、中央の0を「5」に置き換えた後の出力は155として出力されるためです。 この問題を解決するためのアプローチ 指定された番号のすべ

  2. 与えられた数Nの桁数を数えるプログラムをPythonで書く

    数値Nを指定したとしましょう。タスクは、数値に存在する桁の総数を見つけることです。たとえば、 入力-1 − N = 891452 出力 − 6 説明 −指定された番号891452には6桁が含まれているため、この場合は「6」を返します。 入力-2 − N = 0074515 出力 − 5 説明 −指定された番号0074515には5桁が含まれているため、出力を5として出力します。 この問題を解決するために使用されるアプローチ この問題は次の方法で解決できます 数字として入力「n」を取ります。 関数countDigits(n)は、入力「n」を受け取り、出力として桁数