2016-07-27 9 views

答えて

3

あなたはnp.whereするのではなく、ここにstr.extractを使用することができます。

In [290]: df['State'] = df['College'].str.extract('({})'.format('|'.join(State)), expand=True) 

In [291]: df 
Out[291]: 
        College  State 
0 University of Michigan Michigan 
1 University of Florida  NaN 
2    Iowa State  Iowa 
1
States = [ 
      'Washington' 'Wisconsin' 'West Virginia' 'Florida' 'Wyoming' 
      'New Hampshire' 'New Jersey' 'New Mexico' 'National' 'North Carolina' 
      'North Dakota' 'Nebraska' 'New York' 'Rhode Island' 'Nevada' 'Guam' 
      'Colorado' 'California' 'Georgia' 'Connecticut' 'Oklahoma' 'Ohio' 'Kansas' 
      'South Carolina' 'Kentucky' 'Oregon' 'South Dakota' 'Delaware' 
      'District of Columbia' 'Hawaii' 'Puerto Rico' 'Texas' 'Louisiana' 
      'Tennessee' 'Pennsylvania' 'Virginia' 'Virgin Islands' 'Alaska' 'Alabama' 
      'American Samoa' 'Arkansas' 'Vermont' 'Illinois' 'Indiana' 'Iowa' 
      'Arizona' 'Idaho' 'Maine' 'Maryland' 'Massachusetts' 'Utah' 'Missouri' 
      'Minnesota' 'Michigan' 'Montana' 'Northern Mariana Islands' 'Mississippi' 
] 

state_str = '|'.join(States) 
df.update(df.College.str.extract(r'(?P<State>{})'.format(state_str), expand=True)) 

df 

enter image description here

関連する問題