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

Pythonでプログラムを作成して、特定のDataFrameのインデックスと列を転置します


入力

DataFrameがあり、インデックスと列の転置の結果は、

であると想定します。
Transposed DataFrame is
  0 1
0 1 4
1 2 5
2 3 6

ソリューション1

  • DataFrameを定義する

  • ネストされたリスト内包表記を設定して、2次元リストデータの各要素を反復し、結果に保存します。

result = [[data[i][j] for i in range(len(data))] for j in range(len(data[0]))
  • 結果をDataFrameに変換します

df2 = pd.DataFrame(result)

完全な実装を見て、理解を深めましょう-

import pandas as pd
data = [[1,2,3],[4,5,6]]
df = pd.DataFrame(data)
print("Original DataFrame is\n", df)
result = [[data[i][j] for i in range(len(data))] for j in range(len(data[0]))]
df2 = pd.DataFrame(result)
print("Transposed DataFrame is\n", df2)

出力

Original DataFrame is
  0 1 2
0 1 2 3
1 4 5 6
Transposed DataFrame is
  0 1
0 1 4
1 2 5
2 3 6

ソリューション2

  • DataFrameを定義する

  • df.Tまたはdf.transpose()のいずれかの転置メソッドをDataFrameに適用します。

df.transpose() # or df.T

完全な実装を見て、理解を深めましょう-

import pandas as pd
data = [[1,2,3],[4,5,6]]
df = pd.DataFrame(data)
print("Original DataFrame is\n", df)
print("Transposed DataFrame is\n", df.transpose())

出力

Original DataFrame is
  0 1 2
0 1 2 3
1 4 5 6
Transposed DataFrame is
  0 1
0 1 4
1 2 5
2 3 6

ソリューション3

  • DataFrameを定義する

  • Zipメソッドは、タプルのイテレータを返します。 *を使用して2次元リストに解凍し、zipするように適用します。以下に定義されています

result = zip(*data)
  • 結果をDataFrameに変換します

df2 = pd.DataFrame(result)

完全な実装を見て、理解を深めましょう-

import pandas as pd
data = [[1,2,3],[4,5,6]]
df = pd.DataFrame(data)
print("Original DataFrame is\n", df)
result = zip(*data)
df2 = pd.DataFrame(result)
print("Transposed DataFrame is\n", df2)

出力

Original DataFrame is
  0 1 2
0 1 2 3
1 4 5 6
Transposed DataFrame is
  0 1
0 1 4
1 2 5
2 3 6

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

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

  2. Pythonで与えられた行列の転置を見つけるプログラム

    (n x n)行列Mがあるとすると、その転置を見つける必要があります。私たちが知っているように、行列の転置は行と列のインデックスを切り替えます。より正式には、すべてのrとcについて、matrix [r] [c] =matrix[c][r]。 したがって、入力が次のような場合 7 2 6 3 7 2 5 3 7 その場合、出力は次のようになります 7 3 5 2 7 3 6 2 7 これを解決するには、次の手順に従います- M:=新しいリスト トラッカー:=0 トラッカー<