Как найти индексы идентичных строк, основанные на двух столбцах в двух разных пирамидах данных?

У меня есть два кадра данных панд:

df1 = pd.DataFrame([[21,80,180],[23,95,191],[36,83,176]], columns = ["age", "weight", "height"])
df2 = pd.DataFrame([[22,88,184],[39,84,196],[23,95,190]], columns = ["age", "weight", "height"])

df1:
   age  weight  height
0   21      80     180
1   23      95     191
2   36      83     176

df2:
   age  weight  height
0   22      88     184
1   39      84     196
2   23      95     190

Я хотел бы сравнить два кадра данных и получить индексы обоих кадров данных, где age и weight в одном кадре данных равны age и вес во втором кадре данных. Результат в этом случае будет:

matching_indices = [1,2]    #[df1 index, df2 index]

Я знаю, как этого добиться с помощью iterrows() , но я предпочитаю что-то менее трудоемкое, поскольку набор данных у меня относительно большой. Есть ли у вас какие-либо идеи?

1
добавлено автор Mayank Porwal, источник

1 ответы

Используйте merge с внутренним соединением по умолчанию и reset_index для преобразования индекса в столбец для предотвращения потери этой информации:

df = df1.reset_index().merge(df2.reset_index(), on=['age','weight'], suffixes=('_df1','_df2'))
print (df)
   index_df1  age  weight  height_df1  index_df2  height_df2
0          1   23      95         191          2         190

print (df[['index_df1','index_df2']])
   index_df1  index_df2
0          1          2
1
добавлено
Python
Python
7 654 участник(ов)

Уютный чат для профессионалов, занимающихся поиском питоньих мудростей. Как не получить бан: https://t.me/ru_python/577926

Python beginners
Python beginners
4 449 участник(ов)

Вопросы про Python для чайников. Cпам и троллинг неприемлем. Не злоупотребляйте стикерами. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Статистика тут: https://grstats.me/chat/x4qym2k5uvfkr3al6at7

pro.python
pro.python
1 090 участник(ов)

Сообщество разработчиков под Python Создатель: @rodgelius

Rude Python
Rude Python
971 участник(ов)

Python без „девочек”, здесь матерятся и унижают Django. Not gay friendly. Правила: t.me/rudepython/114107 @rudepython | t.me/rudepython

rupython
rupython
509 участник(ов)

Группа создана с целью оперативного получения ответов на возникающие вопросы по разработке на яп python, смежные темы, а также человеческого общения. Приветствую!

Python-programming
Python-programming
266 участник(ов)

Чат группы вконтакте https://vk.com/python_community