Преобразование длинных целых чисел в строки в пандах (чтобы избежать научной нотации)

Я хочу, чтобы следующие записи (в настоящее время отображаются как 3.200000e + 18, но на самом деле (надеюсь) каждая отличается от длинного целого), созданные с использованиемpd.read_excel (), чтобы быть интерпретированы по-разному:

ipdb> self.after['class_parent_ref']
class_id
3200000000000515954    3.200000e+18
3200000000000515951             NaN
3200000000000515952             NaN
3200000000000515953             NaN
3200000000000515955    3.200000e+18
3200000000000515956    3.200000e+18
Name: class_parent_ref, dtype: float64

В настоящее время они, похоже, «выходят» в виде строк с научной нотацией:

ipdb> self.after['class_parent_ref'].iloc[0]
3.2000000000005161e+18

Хуже того, мне не ясно, что число было правильно прочитано из моего файла .xlsx:

ipdb> self.after['class_parent_ref'].iloc[0] -3.2e+18
516096.0

Число в Excel (источник данных): 3200000000000515952.

Это не про дисплей, который я знаю, что могу изменитьВот, Речь идет о сохранении базовых данных в той же форме, в которой они были при чтении (так что если / когда я запишу их обратно в Excel, они будут выглядеть одинаково, и поэтому, если я буду использовать данные, они будут выглядеть так, как они это делали в Excel, а не Xe + Y). Я бы определенно принял строку, если бы мог рассчитывать на то, что она является строковым представлением правильного числа.

Вы можете заметить, что число Iхочу на самом деле (кстати) один из ярлыков. Панды правильно читают их как строки (возможно, потому что Excel рассматривал их как строки?) В отличие от этого числа, которое я ввел. (На самом деле, хотя даже когда я вписываю = "3200000000000515952" в соответствующую ячейку перед повторным чтением, я получаю тот же результат, что и описанный выше.)

Как я могу получить 3200000000000515952 из кадра данных? Мне интересно, есть ли у панд ограничение с длинными целыми числами, ноединственное, что я нашел на нем 1) немного устарела и 2) не похожа на ту же вещь, с которой я сталкиваюсь.

Спасибо!

Ответы на вопрос(0)

Ваш ответ на вопрос