<p>一种不转换为<code>float</code>s的可能解决方案-检查if <code>0.0</code>,并删除<code>0.</code>之后的第一个<code>0</code>。非常重要的是在read_cvcsv中设置<code>dtype=str</code>参数,以便将所有列转换为<code>str</code></p>
<pre><code>import pandas as pd
import numpy as np
temp=u"""1987-01-13 0 0.0657 0.0657 0.0652 0.0678 0.0678
1987-01-14 0.63 0.0662 0.0662 0.0653 0.0677 0.0677
1987-01-15 0.0639 0.0662 0.0662 0.0653 0.0676 0.0676
1987-01-16 0.0642 0.0663 0.0663 0.0653 0.0679 0.0679
1987-01-19 0.0644 0.0664 0.0664 0.0658 0.0684 0.0684
1987-01-20 0.065 0.0666 0.0666 0.0662 0.0687 0.0687
1987-01-21 0.0652 0.0672 0.0672 0.0661 0.0688 0.0688
1987-01-22 0.0651 0.0672 0.0672 0.0663 0.0681 0.0681
1987-01-23 0.0652 0.0674 0.0674 0.0656 0.0681 0.0681"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(pd.compat.StringIO(temp), sep="\s+", header=None, dtype=str, index_col=[0])
print (df)
1 2 3 4 5 6
0
1987-01-13 0 0.0657 0.0657 0.0652 0.0678 0.0678
1987-01-14 0.63 0.0662 0.0662 0.0653 0.0677 0.0677
1987-01-15 0.0639 0.0662 0.0662 0.0653 0.0676 0.0676
1987-01-16 0.0642 0.0663 0.0663 0.0653 0.0679 0.0679
1987-01-19 0.0644 0.0664 0.0664 0.0658 0.0684 0.0684
1987-01-20 0.065 0.0666 0.0666 0.0662 0.0687 0.0687
1987-01-21 0.0652 0.0672 0.0672 0.0661 0.0688 0.0688
1987-01-22 0.0651 0.0672 0.0672 0.0663 0.0681 0.0681
1987-01-23 0.0652 0.0674 0.0674 0.0656 0.0681 0.0681
</code></pre>
<hr/>
^{pr2}$
<hr/>
<p>用<code>float</code>s-乘以<code>10</code>的解,如果某个值小于<code>0.1</code>:</p>
<pre><code>import pandas as pd
import numpy as np
temp=u"""1987-01-13 0 0.0657 0.0657 0.0652 0.0678 0.0678
1987-01-14 0.63 0.0662 0.0662 0.0653 0.0677 0.0677
1987-01-15 0.0639 0.0662 0.0662 0.0653 0.0676 0.0676
1987-01-16 0.0642 0.0663 0.0663 0.0653 0.0679 0.0679
1987-01-19 0.0644 0.0664 0.0664 0.0658 0.0684 0.0684
1987-01-20 0.065 0.0666 0.0666 0.0662 0.0687 0.0687
1987-01-21 0.0652 0.0672 0.0672 0.0661 0.0688 0.0688
1987-01-22 0.0651 0.0672 0.0672 0.0663 0.0681 0.0681
1987-01-23 0.0652 0.0674 0.0674 0.0656 0.0681 0.0681"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(pd.compat.StringIO(temp), sep="\s+", header=None, index_col=[0])
</code></pre>
<hr/>
<pre><code>print (df)
1 2 3 4 5 6
0
1987-01-13 0.0000 0.0657 0.0657 0.0652 0.0678 0.0678
1987-01-14 0.6300 0.0662 0.0662 0.0653 0.0677 0.0677
1987-01-15 0.0639 0.0662 0.0662 0.0653 0.0676 0.0676
1987-01-16 0.0642 0.0663 0.0663 0.0653 0.0679 0.0679
1987-01-19 0.0644 0.0664 0.0664 0.0658 0.0684 0.0684
1987-01-20 0.0650 0.0666 0.0666 0.0662 0.0687 0.0687
1987-01-21 0.0652 0.0672 0.0672 0.0661 0.0688 0.0688
1987-01-22 0.0651 0.0672 0.0672 0.0663 0.0681 0.0681
1987-01-23 0.0652 0.0674 0.0674 0.0656 0.0681 0.0681
df = df.mask(df < 0.1, df * 10)
print (df)
1 2 3 4 5 6
0
1987-01-13 0.000 0.657 0.657 0.652 0.678 0.678
1987-01-14 0.630 0.662 0.662 0.653 0.677 0.677
1987-01-15 0.639 0.662 0.662 0.653 0.676 0.676
1987-01-16 0.642 0.663 0.663 0.653 0.679 0.679
1987-01-19 0.644 0.664 0.664 0.658 0.684 0.684
1987-01-20 0.650 0.666 0.666 0.662 0.687 0.687
1987-01-21 0.652 0.672 0.672 0.661 0.688 0.688
1987-01-22 0.651 0.672 0.672 0.663 0.681 0.681
1987-01-23 0.652 0.674 0.674 0.656 0.681 0.681
df.to_csv(file, header=False)
</code></pre>