#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