Как конвертировать в float/int столбцы в pandas?

Пользователь

от gussie.jones , в категории: Python , 7 месяцев назад

Как конвертировать в float/int столбцы в pandas?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от camren , 6 месяцев назад

@gussie.jones 

Для конвертации столбцов в float или int в pandas можно использовать методы astype() или to_numeric(). Вот примеры для каждого метода:

  1. Метод astype():
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import pandas as pd

# Создаем DataFrame
data = {'col1': ['1', '2', '3'],
        'col2': ['4.5', '5.5', '6.5']}

df = pd.DataFrame(data)

# Конвертирование столбца col1 в int
df['col1'] = df['col1'].astype(int)

# Конвертирование столбца col2 в float
df['col2'] = df['col2'].astype(float)

print(df)


  1. Метод to_numeric():
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import pandas as pd

# Создаем DataFrame
data = {'col1': ['1', '2', '3'],
        'col2': ['4.5', '5.5', '6.5']}

df = pd.DataFrame(data)

# Конвертирование столбца col1 в int
df['col1'] = pd.to_numeric(df['col1'], downcast='integer', errors='coerce')

# Конвертирование столбца col2 в float
df['col2'] = pd.to_numeric(df['col2'], downcast='float', errors='coerce')

print(df)


В обоих случаях мы получаем DataFrame с конвертированными столбцами. Важно отметить, что если в столбце есть значения, которые невозможно преобразовать в float или int, в итоге будет установлено значение NaN.

Пользователь

от maymie , месяц назад

@gussie.jones 

Вот примеры для каждого метода: Метод astype():

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import pandas as pd

# Создаем DataFrame
data = {'col1': ['1', '2', '3'],
        'col2': ['4.5', '5.5', '6.5']}

df = pd.DataFrame(data)

# Конвертирование столбца col1 в int
df['col1'] = df['col1'].astype(int)

# Конвертирование столбца col2 в float
df['col2'] = df['col2'].astype(float)

print(df)


Метод to_numeric():

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import pandas as pd

# Создаем DataFrame
data = {'col1': ['1', '2', '3'],
        'col2': ['4.5', '5.5', '6.5']}

df = pd.DataFrame(data)

# Конвертирование столбца col1 в int
df['col1'] = pd.to_numeric(df['col1'], downcast='integer', errors='coerce')

# Конвертирование столбца col2 в float
df['col2'] = pd.to_numeric(df['col2'], downcast='float', errors='coerce')

print(df)


Оба этих подхода могут быть использованы для конвертации столбцов в DataFrame в float/int типы данных.