さまざまな方法で特定のデータフレームを再形成する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
-
特定のシリーズの有効な日付をフィルタリングするプログラムを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()関数を
-
与えられた数Nの桁数を数えるプログラムをPythonで書く
数値Nを指定したとしましょう。タスクは、数値に存在する桁の総数を見つけることです。たとえば、 入力-1 − N = 891452 出力 − 6 説明 −指定された番号891452には6桁が含まれているため、この場合は「6」を返します。 入力-2 − N = 0074515 出力 − 5 説明 −指定された番号0074515には5桁が含まれているため、出力を5として出力します。 この問題を解決するために使用されるアプローチ この問題は次の方法で解決できます 数字として入力「n」を取ります。 関数countDigits(n)は、入力「n」を受け取り、出力として桁数