Как сравнить два файла и получить сведения о столбце и строке строки поиска с помощью pandas

#python #pandas

#python #pandas

Вопрос:

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

Фрейм данных 1:

 Animals       Plants                
Dog         Amaryllis                
Cat         Angel Wing Begonia       
Dragon      African Violet         

Фрейм данных 2:

 Animals           Planents    Amaryllis   Angel Wing Begonia
Dog              Earth          x                x
Cat              Pluto          na               na
Dragon           Mars           na               x
    

Мне нужно, чтобы все растения из фрейма данных 1 сравнивались со значениями ‘x’ в фрейме данных2, если в конкретном столбце присутствует ‘x’, я должен выбрать имя столбца (например: амариллис присутствует в первой строке), название животного, название планеты и записать их в другой файл.

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

 Amaryllis             , Dog,    Earth
Angel wing Begonia    , Dog,    Earth
Angel wing Begonia    , Dragon,  Mars  

В настоящее время я попытался просто прочитать столбец со значением x

 DATA = df_xlsx[df_xlsx['Amaryllis'].str.contains('X', na=False)]
    
DATA    

Ответ №1:

Я не уверен, в чем значение df1 . Насколько я вижу, это похоже melt/stack на фильтр and:

 (df2.melt(['Animals','Planents'], var_name='Plants')
    .query('value=="x"')
    .iloc[:,:-1]
)
  

Вывод:

   Animals Planents              Plants
0     Dog    Earth           Amaryllis
3     Dog    Earth  Angel Wing Begonia
5  Dragon     Mars  Angel Wing Begonia