Восстановление имен столбцов в Pandas Dataframe - PullRequest
0 голосов
/ 25 января 2019

Предположим, у меня есть такой фрейм данных:

   Height  Speed
0     4.0   39.0
1     7.8   24.0
2     8.9   80.5
3     4.2   60.0

Затем, с помощью извлечения некоторых функций, я получаю следующее:

0    39.0
1    24.0
2    80.5
3    60.0

Однако я хочу, чтобы это был кадр данных, где индекс столбца все еще там. Как бы вы получили следующее?

   Speed
0   39.0
1   24.0
2   80.5
3   60.0

Я ищу ответ, который сравнивает оригинал с новым столбцом и определяет, что новый столбец должен называться Speed. Другими словами, он не должен просто переименовывать новый столбец «Скорость».

Вот извлечение функции: пусть X будет исходным кадром данных, а X1 будет возвращенным массивом, в котором отсутствует имя столбца.

    svc = SVC(kernel="linear")
    rfecv = RFECV(estimator=svc, step=1, cv=StratifiedKFold(2),
                  scoring='accuracy')
    X1=rfecv.fit_transform(X, y)

Спасибо

EDIT:

Для комментариев, которые я получаю, я проясню свою двусмысленность. Я полагаю, что метод извлечения признаков, приведенный выше, использует фрейм данных или серию / массив. Затем он возвращает массив. Я передаю в него фрейм данных. Этот фрейм данных содержит метки столбцов и данные. Однако он возвращает массив, в котором отсутствуют имена столбцов. Еще одна оговорка - это должно быть неоднозначно в целом. Я не могу явно назвать свои столбцы, потому что столбцы будут меняться в моей программе. Он может возвращать два массива, четыре массива ... Я ищу метод, который сравнивает исходный фрейм данных с массивом (ами), заданным после извлечения функции, и понимает, что новый массив является «подмножеством» исходного фрейма данных. Затем пометьте его оригинальными названиями столбцов. Дайте мне знать ваши мысли по этому поводу! Извините, ребята, и спасибо за вашу помощь.

1 Ответ

0 голосов
/ 26 января 2019

RFECV после подбора имеет атрибут support_, который является логической маской выбранных объектов.Вы можете получить названия выбранных функций, выполнив:

selected_cols = original_df.columns[rfecv.support_]

Easy Peasey!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...