title: Parallel processing of each row in Pandas iteration
body: <p>I have <code>df_fruits</code>, which is a dataframe of fruits.</p>
  <pre><code>index      name
  1          apple
  2          banana
  3          strawberry
  </code></pre>
  <p>and, its market prices are in mysql database like below,</p>
  <pre><code>category      market      price
  apple         A           1.0
  apple         B           1.5
  banana        A           1.2
  banana        A           3.0
  apple         C           1.8
  strawberry    B           2.7        
  ...
  </code></pre>
  <p>During the iteration in <code>df_fruits</code>, I'd like to do some processes.</p>
  <p>The code below is a non-parallel version.</p>
  <pre><code>def process(fruit):
     # make DB connection
     # fetch the prices of fruit from database
     # do some processing with fetched data, which takes a long time
     # insert the result into DB
     # close DB connection
  
  for idx, f in df_fruits.iterrows():
      process(f)
  </code></pre>
  <p><strong>What I want to do is to do <code>process</code> on each row in <code>df_fruits</code> in parallel</strong>, since <code>df_fruits</code> has plenty of rows and the table size of the market prices is quite large (fetching data takes a long time).</p>
  <p>As you can see, the order of execution between rows does not matter and there's no sharing data.</p>
  <p>Within iteration in <code>df_fruits</code>, I'm confused about where to locate `pool.map(). Do I need to split the rows before parallel execution and distribute chunks to each process? (If so, a process which finished its job earlier than other process would be idle?)</p>
  <p>I've researched of pandarallel but I can't use it (my os is windows).</p>
  <p>Any help would be appreciated.</p>