У меня есть фреймворк с сотнями столбцов и тысячами строк. Я запускаю тест, который добавляет новый столбец в фрейм данных, и он должен соответствовать одному из других.
df['test_A'] = ... some computation depending on other columns ...
assert all(df['test_A'] == df['A'])
Оператор assert не выполняется, потому что небольшой процент строк не соответствует, меньше чем 1 процент. Для простоты назовем их 1p строками.
Я хочу знать, в чем разница между этими конкретными строками и всеми остальными. Например, возможно, в строках 1p есть столбец ('B'), который полностью ложен, или находится в пределах определенного диапазона c numeri c или чего-то подобного.
Это больше похоже на базовый c Вопрос ML, потому что должен быть пакет, метод или методика, которые показывают уникальность этих строк по сравнению со всеми остальными. Что я могу использовать для автоматического определения разницы?
EDIT - пример
Позвольте мне привести небольшой пример.
df = pd.DataFrame({
'A': [0, 1, 2, 3, 4],
'B': [100, 100, 103, 10, 106],
'C': [False, True, False, False, True]})
def whats_unique_about_these_rows(df, index):
'''
return what is special about these rows
compared to the rest of the rows in the dataframe
'''
# return magic
whats_unique_about_these_rows(df, 3)
>> {
>> 'A': '>2 & <4',
>> 'B': '<100',
>> 'C': 'no unique value'}
Как я описал выше Теперь подробно рассмотрим этот пример. Я думаю, что я прошу миниатюрное дерево решений по всем столбцам. Например, каковы границы, которые описывают эти данные по сравнению с остальными данными?
Могу я просто использовать алгоритм дерева решений scikit-learn или что-то в этом роде?