pandas でカテゴリとその頻度を含むテーブルを カテゴリ × 頻度行のテーブルに変換する方法
** Sorry, this note is Japanese only, but please take a look at some code snippets. Hope it helps you a bit!
タイトルからしてわかりにくく、しかも極めて個人的な悩みです。
pandas のデータの変換方法。カテゴリとその頻度が含まれているデータを、各データで1レコード・カテゴリごとに頻度行分だけ、というテーブルに変換するのに思ったより苦労したので、備忘録を兼ねてメモを残しておきます。
pandas の DataFrame とやろうとしてること
元のデータソースの都合で、元データは各データ項目(カテゴリ変数)と、その発生頻度が1レコードに収まっている状態です。リレーショナル データベース風に言えば、カテゴリ変数で正規化されてる状態というか。
ID | Category | Frequency |
---|---|---|
0 | A | 1 |
1 | B | 3 |
2 | C | 1 |
3 | D | 1 |
4 | E | 2 |
これを、このように変換したい、というのが今回の課題。
ID | Category |
---|---|
0 | A |
1 | B |
2 | B |
3 | B |
4 | C |
5 | D |
6 | E |
7 | E |
pandas を使ったテーブル変換・解決方法
結局、pandas 単体の機能を使った方法はわからなくて、一旦データを list にして functools.reduce を使って解決させた。
sklearn.preprocessing とかの中に、こういうことができるモジュールか何かありそうなんだけどな・・・
その他 データ分析 ・機械学習 関係の記事もどうぞ
datalove.hatenadiary.jp
datalove.hatenadiary.jp
datalove.hatenadiary.jp
datalove.hatenadiary.jp
datalove.hatenadiary.jp
datalove.hatenadiary.jp