автоматически определить разницу - pandas фрейм данных - PullRequest
0 голосов
/ 28 мая 2020

У меня есть фреймворк с сотнями столбцов и тысячами строк. Я запускаю тест, который добавляет новый столбец в фрейм данных, и он должен соответствовать одному из других.

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 или что-то в этом роде?

...