Почему float_format ставит дополнительный ноль при преобразовании float в процент с помощью pandas

#python #python-3.x #pandas #dataframe #export-to-csv

#python #python-3.x #pandas #фрейм данных #экспорт в csv

Вопрос:

У меня есть следующий фрагмент кода, который сохраняет данный фрейм данных в файл CSV. При этом я хотел бы, чтобы 33,3 было сохранено как 33,3%, а 44,4 будет сохранено как 44,4%.

 import pandas as pd

d = {'col1': [1, 2], 'col2': [33.3, 44.4]}

df = pd.DataFrame(data=d)

df.to_csv("temp.csv", float_format = '%.1f%%')
 

Но когда я запускаю этот код, результат становится следующим в моем файле temp.csv:

введите описание изображения здесь

Я не хочу, чтобы мои процентные значения обнулялись. Например, вместо 33,30% я хотел бы видеть 33,3% в файле CSV.

И поскольку я указываю это float_format = '%.1f%%' , я ожидаю увидеть 33,3% (вместо 33,30%), но этого не происходит.

Как можно решить эту проблему, чтобы исключить лишние нули в моих процентных значениях?

Комментарии:

1. csv не является типом файла формата, попробуйте использовать Excel, а не csv

2. В [1]: импортировать pandas как pd В [2]: В [2]: d = {‘col1’: [1, 2], ‘col2’: [33.3, 44.4]} В [3]: В [3]: df = pd.DataFrame(данные =d) В [4]: В [4]: из ввода-вывода импортировать StringIO В [5]: out = StringIO() В [6]: df.to_csv(out, float_format = ‘%.1f%%’) В [7]: out.getvalue() Out[7]: ‘,col1,col2n0,1,33,3%n1,2,44,4%n’ В [8]: print(out.getvalue()) ,col1,col2 0,1,33.3% 1,2,44.4% Не вижу проблемы

3. @hd1, вы пробовали сохранить его в CSV-файл и проверить содержимое, открыв файл? И если я открою CSV-файл в другой программе и прочитаю содержимое, я все равно увижу лишний ноль.

4. @edn Я опубликовал то, что написал выше