Освоение преобразования данных в Pandas: от строк к числам

Работа с данными часто предполагает преобразование значений из одного типа данных в другой. В сфере анализа и манипулирования данными решающее значение имеет возможность преобразовывать строки в числовые значения. В этом сообщении блога мы рассмотрим различные методы в популярной библиотеке Python pandas для преобразования строк в числовые данные. Итак, давайте углубимся и овладеем искусством преобразования данных!

Метод 1: pandas.to_numeric()
Функция to_numeric()в pandas — мощный инструмент для преобразования строк в числовые значения. Он может обрабатывать широкий спектр входных данных и предоставляет гибкие возможности для обработки ошибок и преобразования нечисловых значений. Вот пример:

import pandas as pd
data = pd.Series(['10', '20', '30', '40'])
numeric_data = pd.to_numeric(data)
print(numeric_data)

Выход:

0    10
1    20
2    30
3    40
dtype: int64

Метод 2: astype()
Еще один простой метод преобразования строк в числовые значения — использование функции astype(). Этот метод особенно полезен при работе с DataFrames pandas и необходимости преобразовать весь столбец. Вот пример:

import pandas as pd
data = pd.DataFrame({'A': ['10', '20', '30', '40']})
data['A'] = data['A'].astype(int)
print(data)

Выход:

    A
0  10
1  20
2  30
3  40

Метод 3: apply() с лямбда-функцией
Функция apply()в сочетании с лямбда-функцией позволяет выполнять более индивидуальные преобразования. Этот метод удобен, когда вам нужно применить определенные правила или преобразования к каждому элементу в серии pandas. Давайте посмотрим:

import pandas as pd
data = pd.Series(['$10', '$20', '$30', '$40'])
numeric_data = data.apply(lambda x: float(x.replace('$', '')))
print(numeric_data)

Выход:

0    10.0
1    20.0
2    30.0
3    40.0
dtype: float64

Метод 4: Регулярные выражения (регулярные выражения)
Регулярные выражения можно использовать при работе со сложными строковыми шаблонами, которые необходимо извлечь или заменить. Функцию replace()в pandas можно комбинировать с регулярным выражением для удаления ненужных символов и преобразования строк в числовые значения. Вот пример:

import pandas as pd
data = pd.Series(['US$10', '€20', '£30', '¥40'])
numeric_data = data.str.replace('[^\d.]', '', regex=True).astype(float)
print(numeric_data)

Выход:

0    10.0
1    20.0
2    30.0
3    40.0
dtype: float64

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