Я пытаюсь прочитать данные из Excel с помощью pandas.ExcelFile () в фрейм данных, а затем вывести текстовый файл с помощью to_csv.
Этот выходной текстовый файл должен быть с точностью до 20 знаков после запятой и округлен до 20 знаков после запятой.
Если входное значение в Excel равно .005, мой код преобразует его в 0,0050000000000000001, что неверно из-за самой последней цифры. Это должно быть 0,0050000000000000000
Вот мой код:
dataFrame = pd.ExcelFile("xlFile.xlsx")
pd.set_option("display.precision", 20)
dataFrame.ColumnToRound = dataFrame.ColumnToRound.round(20)
dataFrame.to_csv("out.txt", index=False, sep='\t', float_format='%.20f')
Файл INPUT excel выглядит следующим образом (для простоты всего один столбец и одно значение):
ColumnToRound
.005
Я пытался использовать kwarg float_precision = 'round_trip' при чтении файла Excel с использованием pandas.ExcelFile (), но это не имело значения.
Примечание: да, я знаю, что 20 знаков после запятой - это много и, вероятно, больше, чем необходимо, но это было не мое решение. Это должно быть 20 знаков после запятой.