• Автор записи:
  • Рубрика записи:Pandas
  • Время чтения:3 минут чтения
  • Комментарии к записи:0 комментариев

В этом уроке по Python я объясню, как использовать Pandas для преобразования чисел с плавающей запятой в int в Python, используя различные методы, с некоторыми наглядными примерами.

Чтобы преобразовать число с плавающей запятой в int в Pandas в Python, используйте df.astype() для простого усечения, round() в сочетании с astype() для округления значений, df.apply() с настраиваемой функцией для большего контроля, numpy.floor() или numpy.ceil() для операций с указанием лимитов и df.to_numeric() для обработки строк или смешанных типов данных перед преобразованием.

Содержание

Используя функцию df.astype()

Использование функции df.astype() в Pandas для преобразования float в int в Python напрямую изменяет тип данных столбца на целое число, усекая все десятичные части.

Вот пример:

import pandas as pd

df = pd.DataFrame({'JFK Airport': [200.7, 195.5], 'LAX Airport': [180.2, 175.8]})
print("Before Converting:\n", df)
df = df.astype(int)
print("DataFrame after using df.astype():\n", df)

Выход:

Before Converting:
    JFK Airport  LAX Airport
0        200.7        180.2
1        195.5        175.8
DataFrame after using df.astype():
    JFK Airport  LAX Airport
0          200          180
1          195          175

Ниже приведен снимок экрана, показывающий результат реализации кода в редакторе Pycharm.

Используя функцию df.astype()

С помощью round() с функцией astype()

Сначала этот метод округляет числа с плавающей запятой до ближайшего целого числа с помощью функции Python round(), а затем преобразует их в целые числа с помощью astype(int). Это полезно, когда мы хотим округлить значения, а не просто усечь их.

Вот пример использования функции round() с функцией astype() в Python для преобразования float в int в Python:

import pandas as pd

df = pd.DataFrame({'Seattle': [3.76, 4.18], 'Miami': [5.34, 6.12]})
print("Before Converting:\n", df)
df = df.round().astype(int)
print("\nDataFrame using round() with astype():\n", df)

Выход:

Before Converting:
    Seattle  Miami
0     3.76   5.34
1     4.18   6.12

DataFrame using round() with astype():
    Seattle  Miami
0        4      5
1        4      6

Ниже приведен скриншот после реализации кода в редакторе Pycharm.

С помощью round() с функцией astype()

С помощью функции df.apply()

Этот подход предполагает применение пользовательской функции к каждому элементу DataFrame в Python. Он позволяет выполнять сложные операции или условия перед преобразованием чисел с плавающей запятой в целые числа с помощью функции df.apply().

Это код для Pandas для преобразования float в int в Python с помощью функции df.apply():

import pandas as pd

def convert_to_int(x):
    return int(round(x))

df = pd.DataFrame({'California': [45.5, 48.3], 'Alaska': [20.1, 22.6]})
print("Before Converting:\n", df)
df['California'] = df['California'].apply(convert_to_int)
print("\nDataFrame using df.apply():\n", df)

Выход:

Before Converting:
    California  Alaska
0        45.5    20.1
1        48.3    22.6

DataFrame using df.apply():
    California  Alaska
0          46    20.1
1          48    22.6

После выполнения кода в Pycharm результат можно увидеть на снимке экрана ниже.

С помощью функции df.apply()

Используя функцию np.floor() или np.ceil()

Эти функции np.floor() или np.ceil() используются для операций минимального значения (округление вниз) или потолка (округление вверх) перед преобразованием значений в целые числа в Python.

Вот код в Pandas для преобразования float в int в Python с помощью np.floor() или np.ceil():

import pandas as pd
import numpy as np

df = pd.DataFrame({'Software Engineer': [105.7, 108.3], 'Teacher': [50.2, 51.5]})
print("Before Converting:\n", df)
df['floor_income'] = np.floor(df['Software Engineer']).astype(int)
df['ceil_income'] = np.ceil(df['Teacher']).astype(int)
print("\nDataFrame using numpy.floor() or numpy.ceil():\n", df)

Выход:

Before Converting:
    Software Engineer  Teacher
0              105.7     50.2
1              108.3     51.5

DataFrame using numpy.floor() or numpy.ceil():
    Software Engineer  Teacher  floor_income  ceil_income
0              105.7     50.2           105           51
1              108.3     51.5           108           52

После реализации кода в редакторе Pycharm снимок экрана указан ниже.

Используя функцию np.floor() или np.ceil()

С помощью функции df.to_numeric()

Метод df.to_numeric() идеально подходит для преобразования строк или столбцов смешанного типа в числовой тип перед их преобразованием в целые числа в Python.

Вот код в Pandas для преобразования float в int в Python с использованием функции df.to_numeric():

import pandas as pd

df = pd.DataFrame({'Northeast': ['25.5', '27.1'], 'Southwest': ['18.2', '19.4']})
print("Before Converting:\n", df)
df = df.apply(pd.to_numeric).astype(int)
print("\nDataFrame using df.to_numeric():\n", df)

Выход:

Before Converting:
   Northeast Southwest
0      25.5      18.2
1      27.1      19.4

DataFrame using df.to_numeric():
    Northeast  Southwest
0         25         18
1         27         19

Ниже приведен снимок экрана, демонстрирующий выходные данные, снятые после выполнения кода в редакторе Pycharm.

С помощью функции df.to_numeric()

Добавить комментарий