擅长:python、mysql、java
<p>原因是在处理中文字符(它占用两个ANSI字符的空间)时,<code>pandas</code>仍然填充ANSI字符的空白量。这意味着空格的数量只有包含汉字的DF所需的一半。如果<code>pandas</code>忽略了汉字占用两倍的空格,情况会变得更糟:</p>
<pre><code>print pd.read_csv("test.ansi",sep=",", encoding='gb18030').loc[10:12]
10 边亮京 男 1987/06/06
11 边茂勤 女 1947/07/19
12 曹蕊 女 1982/02/19
#notice how the last line is missing one leading white space compared to the preceding lines.
</code></pre>
<p>最终,所有这些都归结到<code>DataFrame</code>类的<code>__unicode__</code>类,该类根据<code>_repr_fit_horizontal_</code>类分配空间。我不确定什么是最好的解决办法。当遇到汉字时,用两个空格代替一个空格?在混合行的情况下,这不是一个好主意,有些行有汉字,有些没有汉字,比如在这个<code>dataframe</code>中。在</p>
<p>也许值得将其作为bug报告。在</p>
<p>但是,如果使用<code>IPython</code>笔记本,则受此问题影响较小,因为<code>DataFrames</code>很好地显示为HTML。在</p>