title: Python - Pandas: get row indices for a particular value in a column
body: <p>Given a pandas dataframe, is there a way to get the indices of rows where a column has particular values?</p>
  <p>Consider the following toy example:</p>
  <p><strong>CSV</strong> (<em>save as test1.csv</em>)</p>
  <pre class="lang-csv prettyprint-override"><code>id,val1,val2
  1,20,A
  1,19,A
  1,23,B
  2,10,B
  2,10,A
  2,14,A
  </code></pre>
  <p>What I currently have is this:</p>
  <pre class="lang-py prettyprint-override"><code>import pandas as pd
  
  df = pd.read_csv('test1.csv')
  print(df)
  
  print(df[df['id']==1].index.to_list())
  print(df[df['id']==2].index.to_list())
  </code></pre>
  <pre class="lang-bash prettyprint-override"><code>   id  val1 val2
  0   1    20    A
  1   1    19    A
  2   1    23    B
  3   2    10    B
  4   2    10    A
  5   2    14    A
  [0, 1, 2]
  [3, 4, 5]
  </code></pre>
  <p>Is there an option/functionality that can give me something like the following?
  (I want to be able to do this for large value lists, <strong>fast</strong>!)</p>
  <pre class="lang-py prettyprint-override"><code>print(df['id'].someFn([1,2]))
  </code></pre>
  <p>Desired output:</p>
  <pre class="lang-bash prettyprint-override"><code>{1:[0,1,2], 2:[3,4,5]}
  </code></pre>