2014-11-06 2 views
0

Я новичок в данных кадрах, поэтому я прошу прощения, если вопрос очевиден, Предположим, у меня есть кадр данных, который выглядит так:способ проверить, если кадр данных содержит меньший кадр данных

1 2 3 
    4 5 6 
    7 8 9 

и I хотел бы проверить, если он содержит следующие данные: кадр

5 6 
    8 9 

есть ли построить в функции в pandas.dataframe, что это сделать?

+0

не знаю, если это является наиболее эффективным способом, но следующие работы:. '(np.intersect1d (ДФ, df1) == df1.values.ravel()) все() == Правда ' – EdChum

ответ

1

Предположительных два dataframes имеют одинаковые относительные столбцы и индекс (я предполагаю, так как они dataframe не только значение массива), здесь является быстрым решением (не самым элегантным или эффективное), где вы сравнить два dataframes после combine_first:

DataFrame.combine_first (другие)

Объединение двух объектов DataFrame и по умолчанию для ненулевых значений в кадре вызова метода. Индекс Результат столбцов будет объединение соответствующих индексов и столбцов

Пример:

df 
    a b c 
0 1 2 3 
1 4 5 6 
2 7 8 9 

df1 
    a b 
1 4 5 
2 7 8 

all(df1.combine_first(df) == df.combine_first(df1)) 
True 

или, если вы хотите проверить DF1 (меньше) в ФР (вы знаете, их размер уже) :

all(df == df1.combine_first(df)) 
True 
+0

Огромное спасибо, уделил мне много времени. –

+0

@MaximDunavicher, не проблема, рад, что это помогает :) – Anzel

Смежные вопросы