Как преобразовать смешанные значения в целое число в Python?

#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)