質問: df.apply(lambda row: line_names.get(row["x"], np.NaN), axis=1) ```
回答: 関数を作ってこんな感じで書けます。 ``` def get_line(x): for l in line_names: if l in x : return line_names[l] return np.NaN df['y'] = df['x'].map(get_line) ``` 実際の問題では、`df`に大量のデータがあるので、先に`df['x'].unique()`で`df`内にある路線名を全て抽出して、それの番号を計算して辞書を作っておくと処理が速くなります。