#python #pandas #dataframe #types
#python #pandas #фрейм данных #типы
Вопрос:
У меня есть столбец в DataFrame как:
column1
Jone
Jeck
42
Fin
Tom
45
Все значения являются str. Как я могу преобразовать 42 и 45 в тип int?
Комментарии:
1. val = ’42’ ; int(val)?
Ответ №1:
Используйте пользовательскую функцию, но практическая работа со смешанными данными позже действительно болезненна:
def f(x):
try:
return int(x)
except:
return x
df['column1'] = df['column1'].apply(f)
print (df)
column1
0 Jone
1 Jeck
2 42
3 Fin
4 Tom
5 45
print (df['column1'].apply(type))
0 <class 'str'>
1 <class 'str'>
2 <class 'int'>
3 <class 'str'>
4 <class 'str'>
5 <class 'int'>
Name: column1, dtype: object
Ответ №2:
#Use isdigit function where ever you are using the column names
#Example
a = "12"
b = "stackoverflow"
if(a.isdigit): #returns true and will change it to integer
a = int(a)
if(b.isdigit): #returns false thus it will not be exectuted
b = int(b)