鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

pandas初心者が躓いたデータソートの方法

pandas.read_csvでキー順に読んでほしい時

ni225 = pandas.read_csv("YAHOO-INDEX_N225.csv",index_col=0,parse_dates=True)
ni225.sort('Date')

Dateでソートしようとしたらキーエラーになってしまった。なぜ?

とりあえずこうするみたい。

ni225 = pandas.read_csv("YAHOO-INDEX_N225.csv",index_col=0,parse_dates=True)
ni225 = ni225.sort_index(ascending=True)

index_col指定すると読み込めない?

ni225 = pandas.read_csv("YAHOO-INDEX_N225.csv",parse_dates=True)
ni225.ix[1,'Date']

index_col指定していないとixでDateへアクセスできるが・・・

こうするとできない。ということがわかった。

ni225 = pandas.read_csv("YAHOO-INDEX_N225.csv",index_col=0,parse_dates=True)
ni225.ix[1,'Date']

index_col指定しないでソートすればいいのですが・・・

ni225 = pandas.read_csv("YAHOO-INDEX_N225.csv",parse_dates=True)
ni225.sort_values(by="Date",ascending=True)

その結果、インデックス番号はそのままで値だけソートされてしまう。

7980 1984-01-04
7979 1984-01-04
・・・

やりたかったことはこのように実現

Dateのカラムへのアクセスも可能でソートも実現した。

ni225 = pandas.read_csv("YAHOO-INDEX_N225.csv",parse_dates=True)
ni225.sort_values(by='Date',ascending=True).reset_index(drop=True)