#python #pandas #dataframe
#python #pandas #dataframe
Вопрос:
Ниже приведен сценарий для упрощенной версии рассматриваемого df:
import pandas as pd
df = pd.DataFrame({
'feature' : ['cd_player', 'sat_nav', 'sub_woofer', 'usb_port','cd_player', 'sat_nav', 'sub_woofer', 'usb_port','cd_player', 'sat_nav', 'sub_woofer', 'usb_port'],
'feature_value' : ['1','1','0','4','1','0','0','1','1','1','1','0'],
'feature_colour' : ['red','orange','yellow','green','blue','indigo','violet','red','orange','yellow','green','blue']
})
df
feature feature_value feature_colour
0 cd_player 1 red
1 sat_nav 1 orange
2 sub_woofer 0 yellow
3 usb_port 4 green
4 cd_player 1 blue
5 sat_nav 0 indigo
6 sub_woofer 0 violet
7 usb_port 1 red
8 cd_player 1 orange
9 sat_nav 1 yellow
10 sub_woofer 1 green
11 usb_port 0 blue
df.dtypes
feature object
feature_value object
dtype: object
Я хочу найти способ найти все столбцы с числовыми значениями и преобразовать их типы данных в целые числа и / или числа с плавающей точкой. Конечно, в этом примере это легко сделать вручную, однако рассматриваемый DF имеет ~ 50 потенциальных столбцов с числовыми значениями, но поскольку все они имеют object
dtypes, было бы довольно неэффективно определять вручную.
ПРЕДПОЛАГАЕМЫЙ РЕЗУЛЬТАТ:
df.dtypes
feature object
feature_value int64
dtype: object
Любая помощь была бы с благодарностью принята.
Ответ №1:
Попробуйте это:
df = df.apply(lambda x: pd.to_numeric(x, errors='ignore'))
df.dtypes
Комментарии:
1. Это сработало так, как я надеялся, большое спасибо за вашу помощь!