敬称を外して氏名を取り出す
airlines DataFrame で調査回答者のメタデータを収集する際、回答者の氏名が full_name 列にフルネームとして保存されました。ところが詳しく確認すると、多くの名前の前に "Dr."、"Mr."、"Ms."、"Miss" といった敬称が付いていることが分かりました。
最終的な目標は、回答者の名と姓をそれぞれ含む first_name と last_name という 2 つの新しい列を作成することです。その前段階として、敬称を取り除く必要があります。
airlines DataFrame は環境内にあり、pandas は pd として読み込まれています。
この演習はコースの一部です
Pythonで学ぶデータクリーニング
演習の手順
full_nameから"Dr."、"Mr."、"Miss"、"Ms."を、この順番で空文字列""に置き換えて削除します。.str.contains()を使ったassert文を実行し、full_nameに敬称が残っていないかをテストします。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Replace "Dr." with empty string ""
airlines['full_name'] = airlines['full_name'].____.____("____","")
# Replace "Mr." with empty string ""
airlines['full_name'] = ____
# Replace "Miss" with empty string ""
____
# Replace "Ms." with empty string ""
____
# Assert that full_name has no honorifics
assert airlines['full_name'].str.contains('Ms.|Mr.|Miss|Dr.').any() == False