【毎日Python】Pythonで横持ちデータと縦持ちデータの整形|DataFrame.stack/unstack

stack
こつこつPython
import pandas as pd

Pythonで横持ちのデータを縦持ちに、縦持ちのデータを横持ちに整形する方法です。
使用するのは、Pythonのpandasライブラリの、stackメソッドとunstackメソッドです。
横持ちとは、項目が増えたときに横に増えるデータ構造のことで、縦に増えるデータ構造を縦持ちと言います。

df = pd.read_csv('./sample.csv')
df.head()

このような横持ちのデータフレームを用意します。
stackメソッドを使用してみましょう。
列だったラベルが行に追加され、縦持ちのデータに整形されました。
また、インデックスが階層化され、マルチインデックス型であることが確認できます。

a = df.stack()
a.head(10)

次に、縦持ちのデータを横持ちに整形してみましょう。
先ほど縦持ちにしたデータフレームに、unstackメソッドを使用します。
内側のインデックスがカラムとなり、元の状態に戻すことができました。

b = a.unstack()
b.head()

関連メソッド

【毎日Python】Pythonでデータフレームを縦持ちデータから横持ちに整形する方法|pandas.pivot

【毎日Python】Pythonで横持ちのデータを縦持ちに整形する方法|pandas.melt

未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト