Скажем, у меня есть pandas.DraFrame x
, x
был передан функции filter
и возвратил y
, DataFrame с некоторыми столбцами из x
удалены. Функция представляет собой черный ящик, и номер столбца большой. Как я могу найти столбцы в «х», которые удалены?
Или, y.columns
- это подмножество x.columns
, как мне найти столбцы в x
, которых нет в y
?
Пример:
x = pd.DataFrame(np.array([[1,2,3],[4,5,6]]))
x.columns = list('abc')
y = x.iloc[:, :2].copy()
>>> x
a b c
0 1 2 3
1 4 5 6
>>> y
a b
0 1 2
1 4 5
И я бы хотел вернуть столбец c
.
Мое решение сейчас:
>>> xc = x.columns.values.tolist()
>>> yc = y.columns.values.tolist()
>>> diff = [i for i in xc if i not in yc]
>>> x[diff]
c
0 3
1 6
Есть ли способ получить результат без извлечения имен столбцов?
Я думал, что это были какие-то основные операции, но я не мог найти простой ответ в Интернете.
Спасибо.