47964


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

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

[code]

        import pandas as pd
        import numpy as np
    
    df = pd.DataFrame(
        {'x': ['ＪＲ山手線',
               'ＪＲ総武線',
               '西武池袋線',
               '都営大江戸線',
               'ＪＲ中央線',
               'バス',
               '車']})
    
    line_names = {"ＪＲ山手線":"1",
            "ＪＲ総武線":"2",
            "西武池袋線":"3",
            "都営大江戸線":"4",
            "ＪＲ中央線":"5"}
    
        df['y'] = df.apply(lambda row: line_names[row["x"]], axis=1)
    
[/code]


CC BY-SA 4.0
2018-08-31T01:32:40.393
47953
2018-08-31T05:43:34.520
20148
question
python pandas
文字列の数字への置き換え


一番簡単で高速なのは`map`を使います。

[code]

    df['y'] = df['x'].map(line_names)
    
[/code]


CC BY-SA 4.0
2018-08-31T05:43:34.520
47964
2018-08-31T05:43:34.520
15171
47953
answer