<h4 dir="auto">Code Sample, a copy-pastable example if possible</h4>
<p dir="auto">When the columns are aligned, no problem, the columns in the result have the correct name ('ID' here).</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="pd.concat([
    pd.DataFrame([[0, 1]], index=['r0'], columns=pd.Index(['a', 'b'], name='ID')),
    pd.DataFrame([[2, 3]], index=['r1'], columns=pd.Index(['a', 'b'], name='ID')),
], sort=True)

# out:
# ID  a  b
# r0  0  1
# r1  2  3"><pre class="notranslate"><span class="pl-s1">pd</span>.<span class="pl-en">concat</span>([
    <span class="pl-s1">pd</span>.<span class="pl-v">DataFrame</span>([[<span class="pl-c1">0</span>, <span class="pl-c1">1</span>]], <span class="pl-s1">index</span><span class="pl-c1">=</span>[<span class="pl-s">'r0'</span>], <span class="pl-s1">columns</span><span class="pl-c1">=</span><span class="pl-s1">pd</span>.<span class="pl-v">Index</span>([<span class="pl-s">'a'</span>, <span class="pl-s">'b'</span>], <span class="pl-s1">name</span><span class="pl-c1">=</span><span class="pl-s">'ID'</span>)),
    <span class="pl-s1">pd</span>.<span class="pl-v">DataFrame</span>([[<span class="pl-c1">2</span>, <span class="pl-c1">3</span>]], <span class="pl-s1">index</span><span class="pl-c1">=</span>[<span class="pl-s">'r1'</span>], <span class="pl-s1">columns</span><span class="pl-c1">=</span><span class="pl-s1">pd</span>.<span class="pl-v">Index</span>([<span class="pl-s">'a'</span>, <span class="pl-s">'b'</span>], <span class="pl-s1">name</span><span class="pl-c1">=</span><span class="pl-s">'ID'</span>)),
], <span class="pl-s1">sort</span><span class="pl-c1">=</span><span class="pl-c1">True</span>)

<span class="pl-c"># out:</span>
<span class="pl-c"># ID  a  b</span>
<span class="pl-c"># r0  0  1</span>
<span class="pl-c"># r1  2  3</span></pre></div>
<p dir="auto">However, when the columns are not aligned, then the name seems to disappear:</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="pd.concat([
    pd.DataFrame([[0, 1]], index=['r0'], columns=pd.Index(['a', 'b'], name='ID')),
    pd.DataFrame([[2, 3]], index=['r1'], columns=pd.Index(['a', 'c'], name='ID')),
], sort=True)

# out:
#     a    b    c      &lt;-- notice how the columns have lost their name ('ID').
# r0  0  1.0  NaN
# r1  2  NaN  3.0"><pre class="notranslate"><span class="pl-s1">pd</span>.<span class="pl-en">concat</span>([
    <span class="pl-s1">pd</span>.<span class="pl-v">DataFrame</span>([[<span class="pl-c1">0</span>, <span class="pl-c1">1</span>]], <span class="pl-s1">index</span><span class="pl-c1">=</span>[<span class="pl-s">'r0'</span>], <span class="pl-s1">columns</span><span class="pl-c1">=</span><span class="pl-s1">pd</span>.<span class="pl-v">Index</span>([<span class="pl-s">'a'</span>, <span class="pl-s">'b'</span>], <span class="pl-s1">name</span><span class="pl-c1">=</span><span class="pl-s">'ID'</span>)),
    <span class="pl-s1">pd</span>.<span class="pl-v">DataFrame</span>([[<span class="pl-c1">2</span>, <span class="pl-c1">3</span>]], <span class="pl-s1">index</span><span class="pl-c1">=</span>[<span class="pl-s">'r1'</span>], <span class="pl-s1">columns</span><span class="pl-c1">=</span><span class="pl-s1">pd</span>.<span class="pl-v">Index</span>([<span class="pl-s">'a'</span>, <span class="pl-s">'c'</span>], <span class="pl-s1">name</span><span class="pl-c1">=</span><span class="pl-s">'ID'</span>)),
], <span class="pl-s1">sort</span><span class="pl-c1">=</span><span class="pl-c1">True</span>)

<span class="pl-c"># out:</span>
<span class="pl-c">#     a    b    c      &lt;-- notice how the columns have lost their name ('ID').</span>
<span class="pl-c"># r0  0  1.0  NaN</span>
<span class="pl-c"># r1  2  NaN  3.0</span></pre></div>
<h4 dir="auto">Problem description</h4>
<p dir="auto">When concatenating DataFrames, I expect the non-concatenating axis (the columns axis, in the examples above) to keep its name(s).</p>
<p dir="auto">An interesting question occurs if the instances of the non-concatenating axis are not only misaligned, but also have different names. In that case, we could use the majority value or drop altogether (None).  In our code, we use <code class="notranslate">names = collections.Counter([df.axes[nc_axis].names for df in objs]).most_common(1)[0][0]</code>.</p>
<h4 dir="auto">Expected Output</h4>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="pd.concat([
    pd.DataFrame([[0, 1]], index=['r0'], columns=pd.Index(['a', 'b'], name='ID')),
    pd.DataFrame([[2, 3]], index=['r1'], columns=pd.Index(['a', 'c'], name='ID')),
], sort=True)

# out:
# ID  a    b    c      &lt;-- name 'ID' should be retained, since there is no ambiguity
# r0  0  1.0  NaN
# r1  2  NaN  3.0

# notice how the columns have lost their name ('ID')."><pre class="notranslate"><span class="pl-s1">pd</span>.<span class="pl-en">concat</span>([
    <span class="pl-s1">pd</span>.<span class="pl-v">DataFrame</span>([[<span class="pl-c1">0</span>, <span class="pl-c1">1</span>]], <span class="pl-s1">index</span><span class="pl-c1">=</span>[<span class="pl-s">'r0'</span>], <span class="pl-s1">columns</span><span class="pl-c1">=</span><span class="pl-s1">pd</span>.<span class="pl-v">Index</span>([<span class="pl-s">'a'</span>, <span class="pl-s">'b'</span>], <span class="pl-s1">name</span><span class="pl-c1">=</span><span class="pl-s">'ID'</span>)),
    <span class="pl-s1">pd</span>.<span class="pl-v">DataFrame</span>([[<span class="pl-c1">2</span>, <span class="pl-c1">3</span>]], <span class="pl-s1">index</span><span class="pl-c1">=</span>[<span class="pl-s">'r1'</span>], <span class="pl-s1">columns</span><span class="pl-c1">=</span><span class="pl-s1">pd</span>.<span class="pl-v">Index</span>([<span class="pl-s">'a'</span>, <span class="pl-s">'c'</span>], <span class="pl-s1">name</span><span class="pl-c1">=</span><span class="pl-s">'ID'</span>)),
], <span class="pl-s1">sort</span><span class="pl-c1">=</span><span class="pl-c1">True</span>)

<span class="pl-c"># out:</span>
<span class="pl-c"># ID  a    b    c      &lt;-- name 'ID' should be retained, since there is no ambiguity</span>
<span class="pl-c"># r0  0  1.0  NaN</span>
<span class="pl-c"># r1  2  NaN  3.0</span>

<span class="pl-c"># notice how the columns have lost their name ('ID').</span></pre></div>
<h4 dir="auto">Output of <code class="notranslate">pd.show_versions()</code></h4>
<details>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="INSTALLED VERSIONS
------------------
commit: None
python: 3.6.4.final.0
python-bits: 64
OS: Linux
OS-release: 3.13.0-77-generic
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8
LOCALE: en_US.UTF-8

pandas: 0.23.1
pytest: 3.3.2
pip: 9.0.1
setuptools: 38.4.0
Cython: 0.27.3
numpy: 1.14.5
scipy: 1.0.0
pyarrow: 0.8.0
xarray: None
IPython: 6.1.0
sphinx: 1.6.3
patsy: 0.4.1
dateutil: 2.6.1
pytz: 2017.3
blosc: None
bottleneck: 1.2.1
tables: 3.4.3
numexpr: 2.6.4
feather: None
matplotlib: 2.1.0
openpyxl: 2.4.8
xlrd: 1.1.0
xlwt: 1.3.0
xlsxwriter: 1.0.2
lxml: 4.1.0
bs4: 4.6.0
html5lib: 0.999999999
sqlalchemy: 1.1.13
pymysql: None
psycopg2: 2.7.3.2 (dt dec pq3 ext lo64)
jinja2: 2.10
s3fs: None
fastparquet: 0.1.3
pandas_gbq: None
pandas_datareader: None"><pre class="notranslate"><code class="notranslate">INSTALLED VERSIONS
------------------
commit: None
python: 3.6.4.final.0
python-bits: 64
OS: Linux
OS-release: 3.13.0-77-generic
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8
LOCALE: en_US.UTF-8

pandas: 0.23.1
pytest: 3.3.2
pip: 9.0.1
setuptools: 38.4.0
Cython: 0.27.3
numpy: 1.14.5
scipy: 1.0.0
pyarrow: 0.8.0
xarray: None
IPython: 6.1.0
sphinx: 1.6.3
patsy: 0.4.1
dateutil: 2.6.1
pytz: 2017.3
blosc: None
bottleneck: 1.2.1
tables: 3.4.3
numexpr: 2.6.4
feather: None
matplotlib: 2.1.0
openpyxl: 2.4.8
xlrd: 1.1.0
xlwt: 1.3.0
xlsxwriter: 1.0.2
lxml: 4.1.0
bs4: 4.6.0
html5lib: 0.999999999
sqlalchemy: 1.1.13
pymysql: None
psycopg2: 2.7.3.2 (dt dec pq3 ext lo64)
jinja2: 2.10
s3fs: None
fastparquet: 0.1.3
pandas_gbq: None
pandas_datareader: None
</code></pre></div>
</details>
<p dir="auto">xref <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="166800647" data-permission-text="Title is private" data-url="https://github.com/pandas-dev/pandas/issues/13742" data-hovercard-type="issue" data-hovercard-url="/pandas-dev/pandas/issues/13742/hovercard" href="https://github.com/pandas-dev/pandas/issues/13742">#13742</a> for addl cases.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="In [23]: df1 = pd.DataFrame({'a':[1,2]}, index=pd.Index(['a', 'b'], name='idx'))

In [24]: df2 = pd.DataFrame({'b':[2,3]}, index=pd.Index(['b', 'c'], name='idx'))

In [26]: pd.concat([df1, df2], axis=1)
Out[26]:
     a    b
a  1.0  NaN
b  2.0  2.0
c  NaN  3.0

In [27]: print pd.concat([df1, df2], axis=1).index.name
None"><pre class="notranslate"><code class="notranslate">In [23]: df1 = pd.DataFrame({'a':[1,2]}, index=pd.Index(['a', 'b'], name='idx'))

In [24]: df2 = pd.DataFrame({'b':[2,3]}, index=pd.Index(['b', 'c'], name='idx'))

In [26]: pd.concat([df1, df2], axis=1)
Out[26]:
     a    b
a  1.0  NaN
b  2.0  2.0
c  NaN  3.0

In [27]: print pd.concat([df1, df2], axis=1).index.name
None
</code></pre></div>
<p dir="auto">So the issue seems to be with a string index that is not equal, as when the index of the two frames is equal (no NaNs are introduced), the name is kept and also when using numerical indexes, see <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="160946165" data-permission-text="Title is private" data-url="https://github.com/pandas-dev/pandas/issues/13475" data-hovercard-type="issue" data-hovercard-url="/pandas-dev/pandas/issues/13475/hovercard?comment_id=232310977&amp;comment_type=issue_comment" href="https://github.com/pandas-dev/pandas/issues/13475#issuecomment-232310977">#13475 (comment)</a></p>
<hr>
<p dir="auto">When I use the concat function with input dataframes that have index.name assigned, sometimes the resulting dataframe has the index.name assigned, sometimes it does not.</p>
<p dir="auto">I ran the code below from the python interpreter, using a conda environment with pandas-0.18.1</p>
<p dir="auto">I don't see any odd / extra characters around the "pert_well" column in the files between the files.</p>
<h4 dir="auto">Code Sample, a copy-pastable example if possible</h4>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="import pandas

a_data = &quot;&quot;&quot;x_amount_mg x_annotation    x_mmoles_per_liter  mfc_plate_name  x_avg_mol_weight    x_volume_ul pert_mfc_desc   pert_iname  x_purity    pert_id_vendor  pert_well   pert_vehicle    pert_mfc_id x_smiles    x_mg_per_ml pert_dose_unit  pert_dose   pert_id pert_plate  pert_type
0.04784 ACCEPT  10.0    B-REPO-01-B64-101   405.4084    11  Taltirelin  Taltirelin  86.52   HY-B0596    C18 DMSO    BRD-K93869735-001-01-1  CN1C(=O)C[C@H](NC1=O)C(=O)N[C@@H](Cc1cnc[nH]1)C(=O)N1CCC[C@H]1C(N)=O    4.054084    um  20.0    BRD-K93869735   PMEL008 trt_cp&quot;&quot;&quot;

b_data = &quot;&quot;&quot;pert_well   pert_2_type pert_2_id   pert_2_mfc_id   pert_2_mfc_desc pert_2_id_vendor    pert_2_iname    pert_2_dose pert_2_dose_unit    pert_2_vehicle  pert_3_type pert_3_idpert_3_mfc_id  pert_3_mfc_desc pert_3_id_vendor    pert_3_iname    pert_3_dose pert_3_dose_unit    pert_3_vehicle
A01 ctl_vehicle DMSO    DMSO    DMSO    -666    DMSO    -666    -666    -666    ctl_untrt   CMAP-000    -666    UnTrt   -666    -666    -666    -666    -666&quot;&quot;&quot;

d_data = &quot;&quot;&quot;x_amount_mg x_annotation    x_mmoles_per_liter  mfc_plate_name  x_avg_mol_weight    x_volume_ul pert_mfc_desc   pert_iname  x_purity    pert_id_vendor  pert_well   pert_vehicle    pert_mfc_id x_smiles    x_mg_per_ml pert_dose_unit  pert_dose   pert_id pert_plate  pert_type
0.0 -666    -666    B-REPO-01-B64-107   -666    0   -666    -666    -666    -666    A01 -666    -666    -666    -666    -666    -666    CMAP-000    PMEL001 ctl_untrt&quot;&quot;&quot;

a = pandas.read_csv(StringIO(a_data), sep=&quot;\t&quot;, index_col=&quot;pert_well&quot;)
b = pandas.read_csv(StringIO(b_data), sep=&quot;\t&quot;, index_col=&quot;pert_well&quot;)
c = pandas.concat([a,b], axis=1)
c.index

d = pandas.read_csv(StringIO(d_data), sep=&quot;\t&quot;, index_col=&quot;pert_well&quot;)
e = pandas.concat([d,b], axis=1)
e.index"><pre class="notranslate"><span class="pl-k">import</span> <span class="pl-s1">pandas</span>

<span class="pl-s1">a_data</span> <span class="pl-c1">=</span> <span class="pl-s">"""x_amount_mg x_annotation    x_mmoles_per_liter  mfc_plate_name  x_avg_mol_weight    x_volume_ul pert_mfc_desc   pert_iname  x_purity    pert_id_vendor  pert_well   pert_vehicle    pert_mfc_id x_smiles    x_mg_per_ml pert_dose_unit  pert_dose   pert_id pert_plate  pert_type</span>
<span class="pl-s">0.04784 ACCEPT  10.0    B-REPO-01-B64-101   405.4084    11  Taltirelin  Taltirelin  86.52   HY-B0596    C18 DMSO    BRD-K93869735-001-01-1  CN1C(=O)C[C@H](NC1=O)C(=O)N[C@@H](Cc1cnc[nH]1)C(=O)N1CCC[C@H]1C(N)=O    4.054084    um  20.0    BRD-K93869735   PMEL008 trt_cp"""</span>

<span class="pl-s1">b_data</span> <span class="pl-c1">=</span> <span class="pl-s">"""pert_well   pert_2_type pert_2_id   pert_2_mfc_id   pert_2_mfc_desc pert_2_id_vendor    pert_2_iname    pert_2_dose pert_2_dose_unit    pert_2_vehicle  pert_3_type pert_3_idpert_3_mfc_id  pert_3_mfc_desc pert_3_id_vendor    pert_3_iname    pert_3_dose pert_3_dose_unit    pert_3_vehicle</span>
<span class="pl-s">A01 ctl_vehicle DMSO    DMSO    DMSO    -666    DMSO    -666    -666    -666    ctl_untrt   CMAP-000    -666    UnTrt   -666    -666    -666    -666    -666"""</span>

<span class="pl-s1">d_data</span> <span class="pl-c1">=</span> <span class="pl-s">"""x_amount_mg x_annotation    x_mmoles_per_liter  mfc_plate_name  x_avg_mol_weight    x_volume_ul pert_mfc_desc   pert_iname  x_purity    pert_id_vendor  pert_well   pert_vehicle    pert_mfc_id x_smiles    x_mg_per_ml pert_dose_unit  pert_dose   pert_id pert_plate  pert_type</span>
<span class="pl-s">0.0 -666    -666    B-REPO-01-B64-107   -666    0   -666    -666    -666    -666    A01 -666    -666    -666    -666    -666    -666    CMAP-000    PMEL001 ctl_untrt"""</span>

<span class="pl-s1">a</span> <span class="pl-c1">=</span> <span class="pl-s1">pandas</span>.<span class="pl-en">read_csv</span>(<span class="pl-v">StringIO</span>(<span class="pl-s1">a_data</span>), <span class="pl-s1">sep</span><span class="pl-c1">=</span><span class="pl-s">"<span class="pl-cce">\t</span>"</span>, <span class="pl-s1">index_col</span><span class="pl-c1">=</span><span class="pl-s">"pert_well"</span>)
<span class="pl-s1">b</span> <span class="pl-c1">=</span> <span class="pl-s1">pandas</span>.<span class="pl-en">read_csv</span>(<span class="pl-v">StringIO</span>(<span class="pl-s1">b_data</span>), <span class="pl-s1">sep</span><span class="pl-c1">=</span><span class="pl-s">"<span class="pl-cce">\t</span>"</span>, <span class="pl-s1">index_col</span><span class="pl-c1">=</span><span class="pl-s">"pert_well"</span>)
<span class="pl-s1">c</span> <span class="pl-c1">=</span> <span class="pl-s1">pandas</span>.<span class="pl-en">concat</span>([<span class="pl-s1">a</span>,<span class="pl-s1">b</span>], <span class="pl-s1">axis</span><span class="pl-c1">=</span><span class="pl-c1">1</span>)
<span class="pl-s1">c</span>.<span class="pl-s1">index</span>

<span class="pl-s1">d</span> <span class="pl-c1">=</span> <span class="pl-s1">pandas</span>.<span class="pl-en">read_csv</span>(<span class="pl-v">StringIO</span>(<span class="pl-s1">d_data</span>), <span class="pl-s1">sep</span><span class="pl-c1">=</span><span class="pl-s">"<span class="pl-cce">\t</span>"</span>, <span class="pl-s1">index_col</span><span class="pl-c1">=</span><span class="pl-s">"pert_well"</span>)
<span class="pl-s1">e</span> <span class="pl-c1">=</span> <span class="pl-s1">pandas</span>.<span class="pl-en">concat</span>([<span class="pl-s1">d</span>,<span class="pl-s1">b</span>], <span class="pl-s1">axis</span><span class="pl-c1">=</span><span class="pl-c1">1</span>)
<span class="pl-s1">e</span>.<span class="pl-s1">index</span></pre></div>
<p dir="auto">results:</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="Index([u'A01', u'A02', u'A03', u'A04', u'A05', u'A06', u'A07', u'A08', u'A09',
       u'A10',
       ...
       u'P15', u'P16', u'P17', u'P18', u'P19', u'P20', u'P21', u'P22', u'P23',
       u'P24'],
      dtype='object', length=384)

Index([u'A01', u'A02', u'A03', u'A04', u'A05', u'A06', u'A07', u'A08', u'A09',
       u'A10',
       ...
       u'P15', u'P16', u'P17', u'P18', u'P19', u'P20', u'P21', u'P22', u'P23',
       u'P24'],
      dtype='object', name=u'pert_well', length=384)"><pre class="notranslate"><span class="pl-v">Index</span>([<span class="pl-s">u'A01'</span>, <span class="pl-s">u'A02'</span>, <span class="pl-s">u'A03'</span>, <span class="pl-s">u'A04'</span>, <span class="pl-s">u'A05'</span>, <span class="pl-s">u'A06'</span>, <span class="pl-s">u'A07'</span>, <span class="pl-s">u'A08'</span>, <span class="pl-s">u'A09'</span>,
       <span class="pl-s">u'A10'</span>,
       ...
       <span class="pl-s">u'P15'</span>, <span class="pl-s">u'P16'</span>, <span class="pl-s">u'P17'</span>, <span class="pl-s">u'P18'</span>, <span class="pl-s">u'P19'</span>, <span class="pl-s">u'P20'</span>, <span class="pl-s">u'P21'</span>, <span class="pl-s">u'P22'</span>, <span class="pl-s">u'P23'</span>,
       <span class="pl-s">u'P24'</span>],
      <span class="pl-s1">dtype</span><span class="pl-c1">=</span><span class="pl-s">'object'</span>, <span class="pl-s1">length</span><span class="pl-c1">=</span><span class="pl-c1">384</span>)

<span class="pl-v">Index</span>([<span class="pl-s">u'A01'</span>, <span class="pl-s">u'A02'</span>, <span class="pl-s">u'A03'</span>, <span class="pl-s">u'A04'</span>, <span class="pl-s">u'A05'</span>, <span class="pl-s">u'A06'</span>, <span class="pl-s">u'A07'</span>, <span class="pl-s">u'A08'</span>, <span class="pl-s">u'A09'</span>,
       <span class="pl-s">u'A10'</span>,
       ...
       <span class="pl-s">u'P15'</span>, <span class="pl-s">u'P16'</span>, <span class="pl-s">u'P17'</span>, <span class="pl-s">u'P18'</span>, <span class="pl-s">u'P19'</span>, <span class="pl-s">u'P20'</span>, <span class="pl-s">u'P21'</span>, <span class="pl-s">u'P22'</span>, <span class="pl-s">u'P23'</span>,
       <span class="pl-s">u'P24'</span>],
      <span class="pl-s1">dtype</span><span class="pl-c1">=</span><span class="pl-s">'object'</span>, <span class="pl-s1">name</span><span class="pl-c1">=</span><span class="pl-s">u'pert_well'</span>, <span class="pl-s1">length</span><span class="pl-c1">=</span><span class="pl-c1">384</span>)</pre></div>
<h4 dir="auto">Expected Output</h4>
<p dir="auto">c.index.name should be "pert_well"</p>
<h4 dir="auto">output of <code class="notranslate">pd.show_versions()</code></h4>
<h2 dir="auto">INSTALLED VERSIONS</h2>
<p dir="auto">commit: None<br>
python: 2.7.11.final.0<br>
python-bits: 64<br>
OS: Linux<br>
OS-release: 2.6.32-573.7.1.el6.x86_64<br>
machine: x86_64<br>
processor: x86_64<br>
byteorder: little<br>
LC_ALL: None<br>
LANG: C</p>
<p dir="auto">pandas: 0.18.1<br>
nose: None<br>
pip: 8.1.2<br>
setuptools: 23.0.0<br>
Cython: None<br>
numpy: 1.11.0<br>
scipy: None<br>
statsmodels: None<br>
xarray: None<br>
IPython: None<br>
sphinx: None<br>
patsy: None<br>
dateutil: 2.5.3<br>
pytz: 2016.4<br>
blosc: None<br>
bottleneck: None<br>
tables: None<br>
numexpr: None<br>
matplotlib: None<br>
openpyxl: None<br>
xlrd: None<br>
xlwt: None<br>
xlsxwriter: None<br>
lxml: None<br>
bs4: None<br>
html5lib: None<br>
httplib2: None<br>
apiclient: None<br>
sqlalchemy: None<br>
pymysql: None<br>
psycopg2: None<br>
jinja2: None<br>
boto: None<br>
pandas_datareader: None</p>
<p dir="auto"><a href="https://github.com/pydata/pandas/files/321051/PMEL_input_files_for_pandas_issue.zip">PMEL_input_files_for_pandas_issue.zip</a></p>