現在、xに入っている路線名を、辞書line_namesにあるような数字に置き換えたいと考えています。
その際に、xにある路線名以外は、全て欠損値nanにしたいです。
現在は、line_namesのリストと、データとの対応が不完全なので、エラーになりますが、
辞書line_namesに対応を書かずとも、辞書にない文字列は、
欠損値としたいのですが、ご教示頂けるとありがたいです。

大量なデータがあり、どのような文字列が入っているのか、完全に把握できないので、
こちらで、関心ある路線名以外は、全て欠損値扱いしたいからです。

    import pandas as pd
    import numpy as np

df = pd.DataFrame(
    {'x': ['JR山手線',
           'JR総武線',
           '西武池袋線',
           '都営大江戸線',
           'JR中央線',
           'バス',
           '車']})

line_names = {"JR山手線":"1",
        "JR総武線":"2",
        "西武池袋線":"3",
        "都営大江戸線":"4",
        "JR中央線":"5"}

    df['y'] = df.apply(lambda row: line_names[row["x"]], axis=1)