Pandas 当我将 DataFrame 保存为 CSV 时更改数字 (python3)

Pandas changing number when I save a DataFrame as CSV (python3)

我是运行这段代码:

df = pd.read_csv("./teste/teste_1.csv", sep=";")
df.fillna(0, inplace=True)
a = df['Total'] = df['A'] + df['B'] + df['C'] + df['D'] + df['E']
print(df)
df.to_csv("./teste/9table.csv", sep=";")
print("Done")

teste_1.csv:

META;A;B;C;D;E;%
A;;24.564;;;;-0.00%
B;;2.150;;;;3.55%
C;;;15.226;;;6.14%

并获得此打印件:

  META    A       B       C    D    E       %   Total
0    A  0.0  24.564   0.000  0.0  0.0  -0.00%  24.564
1    B  0.0   2.150   0.000  0.0  0.0   3.55%   2.150
2    C  0.0   0.000  15.226  0.0  0.0   6.14%  15.226

但是,当我将它保存到 csv 时,我得到了这个结果:

  META    A       B                 C              D    E       %   Total
0    A  0.0  24.564                0.0            0.0  0.0  -0.00%  24.564
1    B  0.0    2.15                0.0            0.0  0.0   3.55%    2.15
2    C  0.0     0.0 15.225999999999900            0.0  0.0   6.14%  15.225999999999900

>>> df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 8 columns):
META 3 non-null object
A 3 non-null float64
B 3 non-null float64
C 3 non-null float64
D 3 non-null float64
E 3 non-null float64
% 3 non-null object
Total 3 non-null float64
dtypes: float64(6), object(2)
memory usage: 272.0+ bytes

在 csv 上保存时尝试使用 float_format='%.2f'。让我们像下面这样尝试

df.to_csv("./teste/9table.csv", sep=";", float_format='%.2f')

参见https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_csv.html