У меня есть набор данных смешанных типов, которые необходимо преобразовать в числовые, сохраняя при этом информацию из данных символьных типов.Мое текущее решение в R, но мне нужно теперь преобразовать его в Python, учитывая, что человек, который получит этот скрипт, не знает или не хочет переходить к изучению R, что понятно.Возможно ли достичь этого в Python с помощью библиотеки Pandas?И если да, то как этого добиться?
library(data.table)
library(stringr)
dat <- data.table(x = c('No Data', '2', 'Testing', 'Offline'),
y = c('2', 'No Data', '4', 'Testing'),
z = c(1, 2, 3, 6))
select_cols <- c('x','y')
dat[, paste0(select_cols,'_no_data') := lapply(.SD, function(x) as.numeric(str_detect(x, 'No Data'))), .SDcols = select_cols]
dat[, paste0(select_cols,'_offline') := lapply(.SD, function(x) as.numeric(str_detect(x, 'Offline'))), .SDcols = select_cols]
dat[, paste0(select_cols,'_testing') := lapply(.SD, function(x) as.numeric(str_detect(x, 'Testing'))), .SDcols = select_cols]
dat[, paste0(select_cols) := lapply(.SD, function(x) str_replace(x, 'No Data|Offline|Testing', '0')), .SDcols = select_cols]
dat[, paste0(select_cols) := lapply(.SD, function(x) as.numeric(x)), .SDcols = select_cols]
dat
редактировать: распечатывать необработанные и предварительно обработанные данные
x y z
No Data 2 1
2 No Data 2
Testing 4 3
Offline Testing 6
x y z x_no_data y_no_data x_offline y_offline x_testing y_testing
0 2 1 1 0 0 0 0 0
2 0 2 0 1 0 0 0 0
0 4 3 0 0 0 0 1 0
0 0 6 0 0 1 0 0 1