Изменение номера панды, когда я сохраняю DataFrame как CSV (python3) - PullRequest
0 голосов
/ 20 января 2019

Я запускаю этот кусок кода:

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

1 Ответ

0 голосов
/ 20 января 2019

Попробуйте использовать float_format='%.2f' при сохранении на CSV. Давайте попробуем, как показано ниже

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

См. : https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_csv.html

...