<p dir="auto">In some case a DataFrame exported to excel present some bad values.<br>
It's is not a problem of Excel reading (the data inside the sheet1.xml of the .xlsx file is also incorrect).</p>
<p dir="auto">The same DataFrame exported to ".csv" is correct.</p>
<p dir="auto">The problem could be "solved" by renaming the column header  as [col-1, col-2,...]. Maybe an encoding problem ?</p>
<p dir="auto">The issue is that there is no warning/error during the export. It's very easy to miss it.</p>
<p dir="auto">To reproduce:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="import pandas as pd

df = pd.read_pickle('problematic_df.pkl')
df.to_excel('problematic_df.xlsx')
df.to_csv('problematic_df.csv')"><pre class="notranslate"><code class="notranslate">import pandas as pd

df = pd.read_pickle('problematic_df.pkl')
df.to_excel('problematic_df.xlsx')
df.to_csv('problematic_df.csv')
</code></pre></div>
<p dir="auto">with the file available here: <a href="https://drive.google.com/file/d/0Bzz_ZaP_wS_HMFdlMkVzaTR0cjA/view?usp=sharing" rel="nofollow">https://drive.google.com/file/d/0Bzz_ZaP_wS_HMFdlMkVzaTR0cjA/view?usp=sharing</a></p>
<p dir="auto">Note that the content of cell M14 is different in both file (at least when run on my computer)</p>
<p dir="auto">Using:</p>
<ul dir="auto">
<li>Python 3.4.3 |Anaconda 2.3.0 (64-bit)</li>
<li>pandas 0.16.2</li>
<li>Windows 7 64 bits</li>
</ul>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="store_id_map"><pre class="notranslate"><code class="notranslate">store_id_map
</code></pre></div>
<blockquote>
<p dir="auto">&lt;class 'pandas.io.pytables.HDFStore'&gt;<br>
File path: C:\output\identifier_map.h5<br>
/identifier_map            frame_table  (typ-&gt;appendable_multi,nrows-&gt;26779823,ncols-&gt;9,indexers-&gt;[index],dc-&gt;[RefIdentifierID])</p>
</blockquote>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="store_id_map.select('identifier_map')"><pre class="notranslate"><code class="notranslate">store_id_map.select('identifier_map')
</code></pre></div>
<blockquote>
<hr>
<p dir="auto">KeyError                                  Traceback (most recent call last)<br>
 in ()<br>
----&gt; 1 store_id_map.select('identifier_map')</p>
<p dir="auto">C:\Python27\lib\site-packages\pandas\io\pytables.pyc in select(self, key, where, start, stop, columns, iterator, chunksize, auto_close, *_kwargs)<br>
456             return TableIterator(self, func, nrows=s.nrows, start=start, stop=stop, chunksize=chunksize, auto_close=auto_close)<br>
457<br>
--&gt; 458         return TableIterator(self, func, nrows=s.nrows, start=start, stop=stop, auto_close=auto_close).get_values()<br>
459<br>
460     def select_as_coordinates(self, key, where=None, start=None, stop=None, *_kwargs):</p>
<p dir="auto">C:\Python27\lib\site-packages\pandas\io\pytables.pyc in get_values(self)<br>
982<br>
983     def get_values(self):<br>
--&gt; 984         results = self.func(self.start, self.stop)<br>
985         self.close()<br>
986         return results</p>
<p dir="auto">C:\Python27\lib\site-packages\pandas\io\pytables.pyc in func(_start, _stop)<br>
449         # what we are actually going to do for a chunk<br>
450         def func(_start, _stop):<br>
--&gt; 451             return s.read(where=where, start=_start, stop=_stop, columns=columns, **kwargs)<br>
452<br>
453         if iterator or chunksize is not None:</p>
<p dir="auto">C:\Python27\lib\site-packages\pandas\io\pytables.pyc in read(self, columns, *_kwargs)<br>
3259                     columns.insert(0, n)<br>
3260         df = super(AppendableMultiFrameTable, self).read(columns=columns, *_kwargs)<br>
-&gt; 3261         df.set_index(self.levels, inplace=True)<br>
3262         return df<br>
3263</p>
<p dir="auto">C:\Python27\lib\site-packages\pandas\core\frame.pyc in set_index(self, keys, drop, append, inplace, verify_integrity)<br>
2827                 names.append(None)<br>
2828             else:<br>
-&gt; 2829                 level = frame[col].values<br>
2830                 names.append(col)<br>
2831                 if drop:</p>
<p dir="auto">C:\Python27\lib\site-packages\pandas\core\frame.pyc in <strong>getitem</strong>(self, key)<br>
2001             # get column<br>
2002             if self.columns.is_unique:<br>
-&gt; 2003                 return self._get_item_cache(key)<br>
2004<br>
2005             # duplicate columns</p>
<p dir="auto">C:\Python27\lib\site-packages\pandas\core\generic.pyc in _get_item_cache(self, item)<br>
665             return cache[item]<br>
666         except Exception:<br>
--&gt; 667             values = self._data.get(item)<br>
668             res = self._box_item_values(item, values)<br>
669             cache[item] = res</p>
<p dir="auto">C:\Python27\lib\site-packages\pandas\core\internals.pyc in get(self, item)<br>
1653     def get(self, item):<br>
1654         if self.items.is_unique:<br>
-&gt; 1655             _, block = self._find_block(item)<br>
1656             return block.get(item)<br>
1657         else:</p>
<p dir="auto">C:\Python27\lib\site-packages\pandas\core\internals.pyc in _find_block(self, item)<br>
1933<br>
1934     def _find_block(self, item):<br>
-&gt; 1935         self._check_have(item)<br>
1936         for i, block in enumerate(self.blocks):<br>
1937             if item in block:</p>
<p dir="auto">C:\Python27\lib\site-packages\pandas\core\internals.pyc in _check_have(self, item)<br>
1940     def _check_have(self, item):<br>
1941         if item not in self.items:<br>
-&gt; 1942             raise KeyError('no item named %s' % com.pprint_thing(item))<br>
1943<br>
1944     def reindex_axis(self, new_axis, method=None, axis=0, copy=True):</p>
<p dir="auto">KeyError: u'no item named None'</p>
</blockquote>
<p dir="auto">I am at a loss. What does that mean? I successfully saved the DataFrame but I cannot read it back.</p>