このブログはアフィリエイト広告を利用しています

python

DataFrameにadd_index()やappend_index()は無いので

タイトル通りの内容です。

DataFrame.add_index()やDataFrame.append_index()といったメソッドはありません。
そのかわり、DataFrame.set_index()メソッドで同じことができるので、こちらの関数を使いましょう。

というお話です。

set_index()があるのは知っているけど、add_index()やappend_index()があるはず!
そっちを使ったほうがスマートなはず!
と思って探してしまったせいで、けっこう時間をつぶしてしまったため、同じ方が表れないようにメモしておきます。

DataFrame.set_index()にappend=Trueを設定して使おう

             a   b   c   d
2020-06-01   0   1   2   3
2020-06-02   4   5   6   7
2020-06-03   8   9  10  11
2020-06-04  12  13  14  15

こんな感じのDataFrameがあったとして、ここに例えば['男', '男2', '女', '女2']というインデックスも追加したい場合。

df = df.set_index(pd.Index(['男', '男2', '女', '女2']))

このようにすると、既存のインデックスが消えてしまう。

     a   b   c   d
男    0   1   2   3
男2   4   5   6   7
女    8   9  10  11
女2  12  13  14  15

ので、appendオプションをつけましょう。

df = df.set_index(pd.Index(['男', '男2', '女', '女2']), append=True)
                a   b   c   d
2020-06-01 男    0   1   2   3
2020-06-02 男2   4   5   6   7
2020-06-03 女    8   9  10  11
2020-06-04 女2  12  13  14  15

技術的にはこれでいいんだけど、インデックスに日付と性別があるサンプルしか用意できなかった自分の妄想力の無さをどうにかしたい。(笑)

あとがき

この記事はいつか現れるであろう、同じようにDataFrame.add_index()を探す誰か、のためにメモしたつもりです。

でも、その誰かというのが、記憶が薄れかけた頃の自分で、記事の内容読んで「そうだったー!」とか言ってそう。(笑)

-python

© 2024 ヂまるBlog