title: Creating pandas dataframe from list of dictionaries containing lists of data
body: <p>I have a list of dictionaries with this structure.</p>
  
  <pre><code>    {
          'data' : [[year1, value1], [year2, value2], ... m entries],
          'description' : string,
          'end' : string,
          'f' : string,
          'lastHistoricalperiod' : string, 
          'name' : string,
          'series_id' : string,
          'start' : int,
          'units' : string,
          'unitsshort' : string,
          'updated' : string
      }
  </code></pre>
  
  <p>I want to put this in a pandas DataFrame that looks like</p>
  
  <pre><code>   year       value  updated                   (other dict keys ... )
  0  2040  120.592468  2014-05-23T12:06:16-0400  other key-values
  1  2039  120.189987  2014-05-23T12:06:16-0400  ...
  2  other year-value pairs ...
  ...
  n
  </code></pre>
  
  <p>where n = m* len(list with dictionaries) (where length of each list in 'data' = m)</p>
  
  <p>That is, each tuple in 'data' should have its own row.  What I've done thus far is this:</p>
  
  <pre><code>x = [list of dictionaries as described above]
  # Create Empty Data Frame
  output = pd.DataFrame()
  
      # Loop through each dictionary in the list
      for dictionary in x:
          # Create a new DataFrame from the 2-D list alone.
          data = dictionary['data']
          y = pd.DataFrame(data, columns = ['year', 'value'])
          # Loop through all the other dictionary key-value pairs and fill in values
          for key in dictionary:
              if key != 'data':
                  y[key] = dictionary[key]
          # Concatenate most recent output with the dframe from this dictionary.
          output = pd.concat([output_frame, y], ignore_index = True)
  </code></pre>
  
  <p>This seems very hacky, and I was wondering if there's a more 'pythonic' way to do this, or at least if there are any obvious speedups here.  </p>