pandas の DataFrame で、データを削除したり並べ替えたあとにインデックスを振り直す方法です。reset_indexを使います。
reset_index の使い方
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
from pandas import DataFrame df=DataFrame({'X':['A', 'B', 'C', 'D', 'E'], 'Y':['AA', 'BB', 'CC', 'DD', 'EE'], 'Z':['AAA', 'BBB', 'CCC', 'DDD', 'EEE']}) print df #---------------- # X Y Z # 0 A AA AAA # 1 B BB BBB # 2 C CC CCC # 3 D DD DDD # 4 E EE EEE #---------------- df.drop([0,2], inplace=True) print df #---------------- # X Y Z # 1 B BB BBB # 3 D DD DDD # 4 E EE EEE #---------------- ↑ 削除したらインデックスが歯抜けに! print df.reset_index(drop=True) #---------------- # X Y Z # 0 B BB BBB # 1 D DD DDD # 2 E EE EEE #---------------- ↑ reset_index で振り直し |
drop オプション
drop=True を指定しなければ、旧インデックスがデータ列に移動します。
1 2 3 4 5 6 7 8 |
print df.reset_index() #----------------------- # index X Y Z # 0 1 B BB BBB # 1 3 D DD DDD # 2 4 E EE EEE #----------------------- ↑ 旧インデックス |
inplace オプション
inplace=True で、オブジェクトを直接書きかえられます。
1 2 3 4 5 6 7 8 |
df.reset_index(drop=True, inplace=True) print df #---------------- # X Y Z # 0 B BB BBB # 1 D DD DDD # 2 E EE EEE #---------------- |
nok says:
pandas勉強中のものです。
良い記事ですね。参考になりました!
管理人 says:
nokさん、ありがとうございます
KM says:
勉強を開始したばかりです。
まさに探していた内容でした!ありがとうございます。
大変申し訳ないのですが、可能ならば教えていただけないでしょうか。
「20個のデータを4つに分けて、上から順に5個ずつA,A,A,A,A, B,B,B,B,B, C,C,C,C,C, D,D,D,D,Dという名前を与える」
データの個体を一部入れ替えたりしながら、グラフ化のシミュレーションをしたいと思っています。
自分で勉強すべき、という御意見ももっともですので、私の方でも調査は続けます。
お手を煩わせない範囲で構いませんので御検討よろしくお願いします。