Я пытаюсь установить значение столбца в фрейме данных pandas для некоторых больших чисел с помощью простой строки:
df['Capital'] = 58143898.13876611
и он отображается в df как формат 5.814380e+07. Я хочу это как 58143898.
Что я пробовал:
df['Capital'] = int(58143898.13876611)
Аналогичный вопрос: Как напечатать все цифры большого числа в python?, но он устарел, потому что из NameError: глобальное имя «длинное» не определено я узнал, что long заменяется на int в python 3. Но он по-прежнему показывает 5.814380e+07.
Тем не менее, если я напечатаю только следующую строку, она будет отображаться как 58143898.
In [2] int(58143898.13876611)
Out[2] 58143898
Пожалуйста помоги! Огромное спасибо заранее :)
вы на самом деле пытаетесь сделать так, чтобы само значение содержало только целое число? или вы хотите, чтобы форматирование не отображал числа после запятой?





Вы жалуетесь, что панды представляют ваш номер
в плавающая точка, а не в целочисленной форме.
Coldspeed указывает, что .astype() может
изменить столбец на желаемый тип.
Чтобы лучше понять, что pandas делает с вашим вводом, посмотрите:
df.dtypes
Вы хотите, чтобы столбец Capital имел целочисленный тип.
Чтобы потом не возиться с типами,
вы можете позаботиться о преобразовании входных данных в intдо при построении фрейма данных.
Pandas просматривает значения все в столбце
и выбирает тип, совместимый со всем набором значений.
Так, например. столбец, содержащий [1, 2.5, 3]
заставит все значения плавать, а не int.
Стоит отметить, что пропущенные значения может оказать на это очень заметное влияние. Вы можете захотеть что-то вроде:
df2 = df1.dropna()
Определенные битовые шаблоны FP зарезервированы для использования в качестве NaN,
но pandas, к сожалению, резервирует нетmaxint,
ни любое другое целочисленное значение,
смоделировать понятие недостающих данных.
Соответственно ввод типа [1, None, 3] будет повышен с int до float.
df['Capital'] = df['Capital'].astype(int)не работает?