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

さまざまな方法で特定のデータフレームを再形成するPythonプログラムを作成する


Melt()、stack()、unstack()、pivot()関数を使用してデータフレームの形状を変更できます。

ソリューション1

  • データフレームを定義します。

  • ワイドデータフレーム列を行として変換するには、melt()関数を適用します。以下に定義されています

df.melt()

理解を深めるために、以下のコードを見てみましょう-

import pandas as pd
df = pd.DataFrame({'Id':[1,2,3],'Age':[13,14,13],'Mark':[80,90,85]})
print("Dataframe is:\n",df)
print(df.melt())

出力

Dataframe is:
 Id Age Mark
0 1 13   80
1 2 14   90
2 3 13   85
variable value
0    Id    1
1    Id    2
2    Id    3
3   Age    13
4   Age    14
5   Age    13
6   Mark   80
7   Mark   90
8   Mark   85

ソリューション2

  • データフレームを定義します。

  • stack()関数を適用して、データフレーム内のインデックスのレベルを上げます。以下に定義されています

df.stack().to_frame()
  • 変更を元に戻したい場合は、unstack()を使用できます。

df.unstack().to_frame()

理解を深めるために、以下の実装を見てみましょう-

import pandas as pd
df = pd.DataFrame({'Id':[1,2,3],'Age':[13,14,13],'Mark':[80,90,85]})
print("Dataframe is:\n",df)
print(df.stack().to_frame())
print(df.unstack().to_frame())

出力

Dataframe is:
   Id   Age Mark
0   1    13  80
1   2    14  90
2   3    13  85
          0
0   Id    1
   Age    13
   Mark   80
1   Id     2
   Age    14
  Mark    90
2   Id    3
   Age    13
   Mark   85
          0
Id   0    1
     1    2
     2    3
Age  0    13
     1    14
     2    13
Mark 0    80
     1    90
     2    85

ソリューション3

  • データフレームを定義する

  • ピボット()関数を適用して、ID列に基づいてデータフレームを再形成します

df.pivot(columns='Id')

理解を深めるために、以下の実装を見てみましょう-

import pandas as pd
df = pd.DataFrame({'Id':[1,2,3],'Age':[13,14,13],'Mark':[80,90,85]})
print("Dataframe is:\n",df)
print(df.pivot(columns='Id'))

出力

Dataframe is:
 Id Age Mark
0 1 13   80
1 2 14   90
2 3 13   85
      Age          Mark
Id    1    2    3    1    2    3
0   13.0  NaN  NaN  80.0 NaN  NaN
1   NaN  14.0  NaN  NaN  90.0 NaN
2   NaN  NaN   13.0 NaN  NaN  85.0

  1. 特定のシリーズの有効な日付をフィルタリングするプログラムをPythonで作成します

    入力 −シリーズがあると仮定します 0 2010-03-12 1 2011-3-1 2 2020-10-10 3 11-2-2 出力 −そして、シリーズの有効な日付の結果は、 0 2010-03-12 2 2020-10-10 ソリューション1 シリーズを定義します。 ラムダフィルターメソッドを適用して、一連のパターンを検証します。 data = pd.Series(l) result = pd.Series(filter(lambda x:re.match(r"\d{4}\W\d{2}\W\d{2}",x),data)) 最後に、isin()関数を

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

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