特定の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
-
Pythonでプログラムを作成して、指定された数のすべての0を5に置き換えます
整数Nが与えられた場合、タスクは、数値に表示されるすべての0を「5」に置き換えることです。ただし、先頭に「0」が付いている番号は変更されないため、「5」に置き換えることはできません。たとえば、 入力-1 − N = 1007 出力 − 1557 説明 −指定された数値には2つのゼロがあり、「5」に置き換えると1557として出力されます。 入力-2 − N = 00105 出力 − 155 説明 −指定された数値は、無視できる先頭の「0」で始まり、中央の0を「5」に置き換えた後の出力は155として出力されるためです。 この問題を解決するためのアプローチ 指定された番号のすべ
-
与えられた数Nの桁数を数えるプログラムをPythonで書く
数値Nを指定したとしましょう。タスクは、数値に存在する桁の総数を見つけることです。たとえば、 入力-1 − N = 891452 出力 − 6 説明 −指定された番号891452には6桁が含まれているため、この場合は「6」を返します。 入力-2 − N = 0074515 出力 − 5 説明 −指定された番号0074515には5桁が含まれているため、出力を5として出力します。 この問題を解決するために使用されるアプローチ この問題は次の方法で解決できます 数字として入力「n」を取ります。 関数countDigits(n)は、入力「n」を受け取り、出力として桁数