В этом уроке по Python я объясню, как использовать Pandas для преобразования чисел с плавающей запятой в int в Python, используя различные методы, с некоторыми наглядными примерами.
Чтобы преобразовать число с плавающей запятой в int в Pandas в Python, используйте df.astype() для простого усечения, round() в сочетании с astype() для округления значений, df.apply() с настраиваемой функцией для большего контроля, numpy.floor() или numpy.ceil() для операций с указанием лимитов и df.to_numeric() для обработки строк или смешанных типов данных перед преобразованием.
- Используя функцию df.astype()
- С помощью round() с функцией astype()
- С помощью функции df.apply()
- Используя функцию np.floor() или np.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.
С помощью 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.
С помощью функции 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 результат можно увидеть на снимке экрана ниже.
Используя функцию 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 снимок экрана указан ниже.
С помощью функции 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.