Код: Выделить всё
import pandas as pd
df1 = pd.DataFrame(
{
"Animal": ["Corgi",
"Labrador",
"Orange Cat",
"Black Cat"],
"Owner": ["Bob",
"Joe",
"Sara",
"Glen"]
})
df2 = pd.DataFrame(
{
"Animal": ["Corgi",
"Labrador",
"Black Cat"],
"Owner": ["Bob",
"Joe",
"Glen"]
})
dfF = pd.DataFrame(columns=["Animal", "Owner"])
df1Sort = df1.sort_values(by=["Animal"]).reset_index(drop=True)
df2Sort = df2.sort_values(by=["Animal"]).reset_index(drop=True)
for ind in df1Sort.index:
for subInd in df2Sort.index:
if df1Sort["Animal"][ind] == df2Sort["Animal"][subInd]:
print("Found match:",
df1Sort["Animal"][ind],
"-",
df1Sort["Owner"][ind])
break
elif df2Sort.index[subInd] == df2Sort.index[-1]:
print("No match for:",
df1Sort["Animal"][ind],
"-",
df1Sort["Owner"][ind])
dfF = pd.concat([dfF, df1Sort.iloc[ind]], axis=0, ignore_index=True)
break
print(dfF)
- Найдено совпадение: Черная кошка — Глен
- Найдено совпадение: Корги - Боб
- Найдено совпадение: Лабрадор - Джо
- Нет совпадения для: Оранжевый кот - Сара
- Владелец животного 0
- 0 NaN NaN Оранжевый кот
- 1 NaN NaN Сара
- Владелец животного
- 0 Оранжевая кошка Сара
Подробнее здесь: https://stackoverflow.com/questions/790 ... -dataframe