Python – добавление недостающих данных в новый фрейм данныхPython

Программы на Python
Anonymous
Python – добавление недостающих данных в новый фрейм данных

Сообщение Anonymous »

Я сравниваю два кадра данных, просматривая оба и определяя, отсутствуют ли данные (строка) из одного в другом. Если совпадения нет, я хочу добавить эту конкретную строку в третий кадр данных. Мне удалось добиться этого с помощью метода add(), но Python предупреждает меня, что он устарел, и предлагает вместо этого использовать concat. К сожалению, я не могу использовать concat для достижения того же результата.

Код: Выделить всё

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

Вернуться в «Python»