プログラミング初心者です。
仕事でデータサイエンスを使おうということで、下記のリンクの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です。
以上よろしくお願い致します。