title: Alternatives to iloc for searching dataframes
body: <p>I have a simple piece of code that iterates through a list of id's, and if an id is in a particular data frame column(in this case, the column is called <code>uniqueid</code>), it uses <code>iloc</code> to get the value from another column on the matching row and then adds it to as a value in a dictionary with the id as the key:</p>
  
  <pre><code>union_cols = ['uniqueid', 'FLD_ZONE', 'FLD_ZONE_1', 'ST_FIPS', 'CO_FIPS', 'CID']
  union_df = gpd.GeoDataFrame.from_features(records(union_gdb, union_cols))
  
  pop_df = pd.read_csv(pop_csv, low_memory=False) # Example dataframe
  uniqueid_inin = ['', 'FL1234', 'F54323', ....] # Just an example    
  isin_dict = dict()
  
  for id in uniqueid_inin:
      if (id is not '') &amp; (id in pop_df.uniqueid.values):
          v = pop_df.loc[pop_df['uniqueid'] == id, 'Pop_By_Area'].iloc[0]
          inin_dict.setdefault(id, v) 
  </code></pre>
  
  <p>This works, but it is very slow. Is there a quicker way to do this?</p>