Сравните столбцы между двумя разными файлами Excel (python, pandas) - PullRequest
1 голос
/ 05 августа 2020

Я хочу сравнить столбцы и строки двух разных файлов Excel. Я хочу сравнить значения «Категория 2» в file1 со списком «Group» в file2. если значение file2 не существует в file1, удалите строку из file2. Я искал и пробовал разные вещи, но не могу найти ничего конкретного c того, что я пытаюсь сделать. при необходимости я могу удалить заголовки типа «Все списки» и «Список X» из файла1, но с точки зрения сравнения я действительно не знаю, как двигаться дальше. Я был бы признателен за любую помощь или указатели или знаю, возможно ли это. спасибо

df1 = pd.read_excel('file1', 'Table 3')
df2 = pd.read_excel('file2.xlsx')

# difference = df1[df1!=df2]
# print(df1.equals(df2))

print(df1['Category 2']).where(df1['Courses']) == df2['Group']

file1

All Lists
Category 1  Category 2  Category 3  Category 4  Category 5  Category 6                   
List 1                  
            element1        x   
            element2        x   
            element3        x   
            element4        x   
            element5        x   
List 2                  
            card1           x   
            card2           x   
            card3           x   
            card4           x   
            card5           x   
List 3                  
            box1            x   
            box2            x   
            box3            x   
            box4            x   
            box5            x

file2

Group   Manager     quarter1    quarter2    quarter3    quarter4                total
element2    A           $          $           $           $                      $
notElement  B           $          $           $           $                      $
card3       C           $          $           $           $                      $
box4        D           $          $           $           $                      $
element3    E           $          $           $           $                      $
box1        F           $          $           $           $                      $
notElement  B           $          $           $           $                      $
notElement  C           $          $           $           $                      $             
card7       D           $          $           $           $                      $
element4    E           $          $           $           $                      $

желаемый результат:

Group   Manager     quarter1    quarter2    quarter3    quarter4                total
element2    A           $          $           $           $                      $
card3       C           $          $           $           $                      $
box4        D           $          $           $           $                      $
element3    E           $          $           $           $                      $
box1        F           $          $           $           $                      $
card7       D           $          $           $           $                      $
element4    E           $          $           $           $                      $

1 Ответ

0 голосов
/ 08 августа 2020

Вы можете использовать Series.isin , чтобы проверить, содержатся ли элементы в df2["Group"] в df1["Category_2"], это возвращает True/False серию, которая при применении с index может использоваться для удаления нежелательных строки (df2.drop(df2[notCateg].index))

df1 = pd.read_excel('file1', 'Table 3')
df2 = pd.read_excel('file2.xlsx')

notCateg = ~df2["Group"].isin(df1["Category_2"])
df2 = df2.drop(df2[notCateg].index)
df2.reset_index(drop=True, inplace=True)
print(df2)
      Group Manager quarter1 quarter2 quarter3 quarter4 total
0  element2       A        $        $        $        $     $
1     card3       C        $        $        $        $     $
2      box4       D        $        $        $        $     $
3  element3       E        $        $        $        $     $
4      box1       F        $        $        $        $     $
5  element4       E        $        $        $        $     $
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...