pandasのcut()の分類がうまくいかない
プログラミング初心者です。
仕事でデータサイエンスを使おうということで、下記のリンクのPython Data Science Handbookの例題を基に勉強しているのですが、例題通りの出力ができずに困っております。
リンク:https://jakevdp.github.io/PythonDataScienceHandbook/03.09-pivot-tables.html
ピボットテーブルの作成を行い、性別・年齢・クラスごとにタイタニックでの生存者を計算するという内容です。
以下コード:
import pandas as pd
import seaborn as sns
titanic = sns.load_dataset('titanic')
age = pd.cut(titanic['age'], [0,18,80])
titanic.pivot_table('survived', ['sex', age], 'class')
これで出力が以下のようになります:
class First Second Third
sex age
female (18, 80] 0.909091 1.000000 0.511628
NaN 0.972973 0.900000 0.423729
male (18, 80] 0.800000 0.600000 0.215686
NaN 0.375000 0.071429 0.133663
本来ならば、分類は0~18歳、18~80歳になるはずなのですが、18~80歳とNaNとなってしまいます。また、First, Second, Third Classの順序は例題通りになるのに、年齢の並び順が入れ替わっており、正しく表示されません。
以下はリンクから参照した正しい表示結果です。
class First Second Third
sex age
female (0, 18] 0.909091 1.000000 0.511628
(18, 80] 0.972973 0.900000 0.423729
male (0, 18] 0.800000 0.600000 0.215686
(18, 80] 0.375000 0.071429 0.133663
このような結果になるのには仕様の変化が関係しているのでしょうか?
そうであれば、どのようにコードを直せば正しく出力できるのでしょうか?
Pandasのcutに関するドキュメントも読んでみましたが、特に触れておらずわかりませんでした。
使用しているIpythonのバージョンは6.4.0、Pandasは0.23.0です。
以上よろしくお願い致します。