2017-04-25 7 views
2

私はcity1、city2、city3、city4、city5の列を持つpandasデータフレームdfを持っています。私はリストmy_cities = ["city1"、 "city3"、 "city10"]を持っています。私は、私はmy_cities.Whenの列に応じてdfをpandasデータフレームをサブセット化する際にKeyErrorを無視する

my_cities = [ "CITY1"、 "city3"、 "city10"]

df_my_citiesは= DF [my_cities]

Iをサブセットしたいですエラーが発生しましたKeyError: "['city10']がインデックスに含まれていません"

my_citiesの要素がdfにない場合は、

答えて

3

あなたはすべての列とlistintersection使用することができます。

df_my_cities = df[df.columns.intersection(my_cities)] 

サンプル:またnumpy.intersect1d

df = pd.DataFrame({'city1':['s', 'e'], 
        'city2':['e','f'], 
        'city3':['f','g'], 
        'city4':['r','g'], 
        'city5':['t','m']}) 

print (df) 
    city1 city2 city3 city4 city5 
0  s  e  f  r  t 
1  e  f  g  g  m 

my_cities = ["city1","city3","city10"] 
df_my_cities = df[df.columns.intersection(my_cities)] 
print (df_my_cities) 
    city1 city3 
0  s  f 
1  e  g 

df_my_cities = df[np.intersect1d(df.columns, my_cities)] 
print (df_my_cities) 
    city1 city3 
0  s  f 
1  e  g 
関連する問題