Python 3: отображать длинные целые числа в панде - PullRequest
0 голосов
/ 14 апреля 2019

Я пытаюсь установить значение столбца во фрейме данных 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

Пожалуйста, помогите! Заранее большое спасибо:)

1 Ответ

1 голос
/ 14 апреля 2019

Вы жалуетесь, что pandas представляет ваше число в с плавающей запятой , а не в целочисленной форме.Coldspeed указывает, что .astype() может изменить столбец на какой-либо желаемый тип.

Чтобы лучше понять, что панды делают с вашим вводом, посмотрите на:

df.dtypes

Вы хотите, чтобы столбец Capital имел целочисленный тип.

Чтобы избежать необходимости возиться с типами позже, вы можете позаботиться о преобразовании входных данных в int до построения .кадр данных.Pandas просматривает все значений в столбце и выбирает тип, совместимый со всем набором значений.Так, например, столбец, содержащий [1, 2.5, 3], заставит все значения плавать, а не int.

Стоит отметить, что отсутствующие значения могут оказать очень заметное влияние на это.Вы можете захотеть что-то вроде:

df2 = df1.dropna()

Некоторые битовые комбинации FP зарезервированы для использования в качестве NaN, но, к сожалению, pandas не резервирует maxint или любое другое целочисленное значение,смоделировать понятие отсутствующих данных.Соответственно, ввод типа [1, None, 3] будет повышен с int до float.

...