title: How to write/read a Pandas DataFrame with MultiIndex from/to an ASCII file?
body: <p>I want to be able to create a Pandas <code>DataFrame</code> with MultiIndexes for the rows and the columns index and read it from an ASCII text file.  My data looks like:</p>
  
  <pre><code>col_indx = MultiIndex.from_tuples([('A',  'B',  'C'), ('A',  'B',  'C2'), ('A',  'B',  'C3'), 
                                     ('A',  'B2', 'C'), ('A',  'B2', 'C2'), ('A',  'B2', 'C3'), 
                                     ('A',  'B3', 'C'), ('A',  'B3', 'C2'), ('A',  'B3', 'C3'), 
                                     ('A2', 'B',  'C'), ('A2', 'B',  'C2'), ('A2', 'B',  'C3'), 
                                     ('A2', 'B2', 'C'), ('A2', 'B2', 'C2'), ('A2', 'B2', 'C3'), 
                                     ('A2', 'B3', 'C'), ('A2', 'B3', 'C2'), ('A2', 'B3', 'C3')], 
                                     names=['one','two','three']) 
  row_indx = MultiIndex.from_tuples([(0,  'North', 'M'), 
                                     (1,  'East',  'F'), 
                                     (2,  'West',  'M'), 
                                     (3,  'South', 'M'), 
                                     (4,  'South', 'F'), 
                                     (5,  'West',  'F'), 
                                     (6,  'North', 'M'), 
                                     (7,  'North', 'M'), 
                                     (8,  'East',  'F'), 
                                     (9,  'South', 'M')], 
                                     names=['n', 'location', 'sex'])
  size=len(row_indx), len(col_indx)
  data = np.random.randint(0,10, size)
  df = DataFrame(data, index=row_indx, columns=col_indx)
  print df
  </code></pre>
  
  <p>I've tried <code>df.to_csv()</code> and <code>read_csv()</code> but they don't keep the index.  </p>
  
  <p>I was thinking of maybe creating a new format using extra delimeters.  For example, using a row of <code>----------------</code> to mark the end of the column indexes and a <code>|</code> to mark the end of a row index. So it would look like this:</p>
  
  <pre><code>one            | A   A   A   A   A   A   A   A   A  A2  A2  A2  A2  A2  A2  A2  A2  A2
  two            | B   B   B  B2  B2  B2  B3  B3  B3   B   B   B  B2  B2  B2  B3  B3  B3
  three          | C  C2  C3   C  C2  C3   C  C2  C3   C  C2  C3   C  C2  C3   C  C2  C3
  --------------------------------------------------------------------------------------
  n location sex :                                                                      
  0 North    M   | 2   3   9   1   0   6   5   9   5   9   4   4   0   9   6   2   6   1
  1 East     F   | 6   2   9   2   7   0   0   3   7   4   8   1   3   2   1   7   7   5
  2 West     M   | 5   8   9   7   6   0   3   0   2   5   0   3   9   6   7   3   4   9
  3 South    M   | 6   2   3   6   4   0   4   0   1   9   3   6   2   1   0   6   9   3
  4 South    F   | 9   6   0   0   6   1   7   0   8   1   7   6   2   0   8   1   5   3
  5 West     F   | 7   9   7   8   2   0   4   3   8   9   0   3   4   9   2   5   1   7
  6 North    M   | 3   3   5   7   9   4   2   6   3   2   7   5   5   5   6   4   2   9
  7 North    M   | 7   4   8   6   8   4   5   7   9   0   2   9   1   9   7   9   5   6
  8 East     F   | 1   6   5   3   6   4   6   9   6   9   2   4   2   9   8   4   2   4
  9 South    M   | 9   6   6   1   3   1   3   5   7   4   8   6   7   7   8   9   2   3
  </code></pre>
  
  <p>Does Pandas have a way to write/read DataFrames to/from ASCII files with MultiIndexes?</p>