データフレームの横持ち化について

ほぼ自分用メモ

縦持ち構造のデータフレームを横持ち化する際は df.pivot() もしくは df.pivot_table() を使うことで実現できるが、デフォルトで指定されている引数の aggfunc=mean が悪さをして、エラーを吐いた。

vaues として指定した値に対して index と columns ごとの平均を取ろうとした結果、欠損値があったりなかったりでレコード数が合わないとかそんな感じなのかな?

正直わからない…。


df.pivot() と df.pivot_table() が横持ち化のための記法として紹介されているが、必ずしもそうではなくてあくまでピポットテーブルを作るためのものという感じなのかも…。


とりあえず今日は解決できなかったので、一旦データフレームをcsvとして保存して、エクセルで開いて横持ち化した。

そしてそれを再度読み込んでモデルに突っ込むという荒技。まさに苦肉の策!


ただ、所感の域を出ないけど、エクセルでできるようなデータの操作はエクセルを使っても良いなということは感じている。

たとえば、レコード数が数万〜10万行くらいのデータなら問題なく処理も回るし、単純な処理なら脳死で実行できるので、あまり馬鹿にせずに使い分けるのが良いのだと思う。


pivot関数がなんで機能しなかったのかはまた検証してみようと思う。

この記事が気に入ったらサポートをしてみませんか?