Pythonのデータ解析ライブラリであるPandasには、データフレーム内のリストやタプルを個々の行に展開するexplode
メソッドが存在します。このメソッドを使うことで、複雑なデータ構造をシンプルな形式に変換し、データ操作をより効率的に行うことができます。本記事では、explode
メソッドの基本的な使い方や、実際の活用例を詳しく解説します。
explodeメソッドとは?
explode
メソッドは、Pandasのデータフレームの列にリストやタプルなどの反復可能なオブジェクトが含まれている場合に、それらを展開して新しい行に分解するメソッドです。例えば、1つのセルに複数の値が含まれている場合、その値を1つの行に1つずつ展開します。これにより、複雑なデータ構造がシンプルになり、データの各要素を個別に扱いやすくなります。
基本的な使い方
python
import pandas as pd
# サンプルデータの作成
df = pd.DataFrame({
'A': [[1, 2, 3], [4, 5, 6]],
'B': ['a', 'b']
})
print(df)
出力結果
A B
0 [1, 2, 3] a
1 [4, 5, 6] b
上記のように、Aのセルの中には[1,2,3]のリストが挿入されています。
このデータフレームをexplodeメソッドで展開してみましょう。
# explodeメソッドの適用
exploded_df = df.explode('A')
print(exploded_df)
出力結果
A B
0 1 a
0 2 a
0 3 a
1 4 b
1 5 b
1 6 b
A列のリストが個別の行に分解され、各セルに1つの値が表示されるようになりました。
explodeメソッドの活用例
- 複数の選択肢を含むアンケート結果の分析
アンケート等で複数回答を許可している場合、各回答を別々の行として分割して扱うことができる。 - 時系列データの展開
1つのセルに複数時点のデータが格納されている時、それぞれの行に分割し、独立した行として扱うことができる - データの整理
データセットに複数のカテゴリやラベルが含まれている列がある場合、それらを個別の行に展開することで、各タグに基づく集計や分析が可能となる。 - データの正規化
ユーザーの購買履歴データがあり、各ユーザーが購入した商品リストが含まれている場合、正規化することで、個々の購買データに分解することができる。
空欄がある時の使い方
空の行は”NaN”として処理される
python
import pandas as pd
data = {'Name': ['A', 'B', 'C'],
'Figure': [['1', '2'], [], ['3', '4', '5']]}
df = pd.DataFrame(data)
df_exploded = df.explode('Figure')
print(df_exploded)
出力結果
Name Figure
0 A 1
0 A 2
1 B NaN
2 C 3
2 C 4
2 C 5
上記のように、空のリストは展開後にNaN
として処理される点に注意が必要です。
まとめ
今回は、explode
メソッドについてまとめてみました。explode
メソッドは、リストやタプルを持つ列を扱う際に便利なメソッドです。データクレンジングやデータの正規化の際に、ぜひこのメソッドを活用してみてください。
explodeメソッド:Pandasのデータフレームの列にリストやタプルなどの反復可能なオブジェクトが含まれている場合に、それらを展開して新しい行に分解するメソッド
コメントを残す コメントをキャンセル