<p dir="auto">In csv files that have odd spacing</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="name,    amount
Alice,100
Bob,200"><pre class="notranslate"><code class="notranslate">name,    amount
Alice,100
Bob,200
</code></pre></div>
<p dir="auto">Loaded dataframes can sometimes have column names with leading or trailing whitespace.  Should these column names be stripped by default?</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="In [4]: pd.read_csv('foo.csv').columns
Out[4]: Index([u'name', u'    amount'], dtype='object')"><pre class="notranslate"><span class="pl-v">In</span> [<span class="pl-c1">4</span>]: <span class="pl-s1">pd</span>.<span class="pl-en">read_csv</span>(<span class="pl-s">'foo.csv'</span>).<span class="pl-s1">columns</span>
<span class="pl-v">Out</span>[<span class="pl-c1">4</span>]: <span class="pl-v">Index</span>([<span class="pl-s">u'name'</span>, <span class="pl-s">u'    amount'</span>], <span class="pl-s1">dtype</span><span class="pl-c1">=</span><span class="pl-s">'object'</span>)</pre></div>
<p dir="auto">When using <code class="notranslate">.loc</code> to expand a column, the dataframe and the constituent Series can get out of sync.  This led to a strange issue in some legacy code I inherited.  Because of the copy/view issues I wouldn't have written this particular code myself, but it still cost me some time tracking down what was happening:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="df = pd.DataFrame({&quot;a&quot;: [10,20,30]})
df[&quot;a&quot;].loc[4] = 40"><pre class="notranslate"><code class="notranslate">df = pd.DataFrame({"a": [10,20,30]})
df["a"].loc[4] = 40
</code></pre></div>
<p dir="auto">gives me</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="In [224]: df
Out[224]: 
    a
0  10
1  20
2  30

In [225]: df[&quot;a&quot;]
Out[225]: 
0    10
1    20
2    30
4    40
Name: a, dtype: int64

In [226]: df.shape, df[&quot;a&quot;].shape
Out[226]: ((3, 1), (4,))"><pre class="notranslate"><code class="notranslate">In [224]: df
Out[224]: 
    a
0  10
1  20
2  30

In [225]: df["a"]
Out[225]: 
0    10
1    20
2    30
4    40
Name: a, dtype: int64

In [226]: df.shape, df["a"].shape
Out[226]: ((3, 1), (4,))
</code></pre></div>
<p dir="auto">which is a little unnerving.  I expected that <code class="notranslate">df</code> and <code class="notranslate">df["a"]</code> would both be unchanged or both be changed.  Not sure if it's too much trouble to fix and we should just say "don't move your arm like that", though.</p>
<p dir="auto"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jorisvandenbossche/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jorisvandenbossche">@jorisvandenbossche</a> reported the same thing in master; here I'm on 0.18.0.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="INSTALLED VERSIONS
------------------
commit: None
python: 3.5.1.final.0
python-bits: 64
OS: Windows
OS-release: 7
machine: AMD64
processor: Intel64 Family 6 Model 60 Stepping 3, GenuineIntel
byteorder: little
LC_ALL: None
LANG: None

pandas: 0.18.0
nose: 1.3.7
pip: 8.1.1
setuptools: 20.3
Cython: 0.23.4
numpy: 1.10.4
scipy: 0.17.0
statsmodels: 0.6.1
xarray: None
IPython: 4.1.2
sphinx: 1.3.1
patsy: 0.4.0
dateutil: 2.5.1
pytz: 2016.2
blosc: None
bottleneck: 1.0.0
tables: 3.2.2
numexpr: 2.5
matplotlib: 1.5.1
openpyxl: 2.3.2
xlrd: 0.9.4
xlwt: 1.0.0
xlsxwriter: 0.8.4
lxml: 3.6.0
bs4: 4.4.1
html5lib: None
httplib2: None
apiclient: None
sqlalchemy: 1.0.12
pymysql: None
psycopg2: None
jinja2: 2.8
boto: 2.39.0"><pre class="notranslate"><code class="notranslate">INSTALLED VERSIONS
------------------
commit: None
python: 3.5.1.final.0
python-bits: 64
OS: Windows
OS-release: 7
machine: AMD64
processor: Intel64 Family 6 Model 60 Stepping 3, GenuineIntel
byteorder: little
LC_ALL: None
LANG: None

pandas: 0.18.0
nose: 1.3.7
pip: 8.1.1
setuptools: 20.3
Cython: 0.23.4
numpy: 1.10.4
scipy: 0.17.0
statsmodels: 0.6.1
xarray: None
IPython: 4.1.2
sphinx: 1.3.1
patsy: 0.4.0
dateutil: 2.5.1
pytz: 2016.2
blosc: None
bottleneck: 1.0.0
tables: 3.2.2
numexpr: 2.5
matplotlib: 1.5.1
openpyxl: 2.3.2
xlrd: 0.9.4
xlwt: 1.0.0
xlsxwriter: 0.8.4
lxml: 3.6.0
bs4: 4.4.1
html5lib: None
httplib2: None
apiclient: None
sqlalchemy: 1.0.12
pymysql: None
psycopg2: None
jinja2: 2.8
boto: 2.39.0
</code></pre></div>