Код: Выделить всё
# First Dataframe
df1 = pd.DataFrame({
'name': ['Adam','Ashley','Adam','Don',],
'items': ['Apple','Banana','Cherry','Date'],
'Quantity': [10,15,20,25]
})
# second dataframe
df2 = pd.DataFrame({
'name': ['Adam','Ashley','Adam','Sunny'],
'items': ['Apple','Banana','Scale','Pickle'],
'Quantity': [11,10,15,20]
})
Я хочу объединить эти два и подготовить фрейм данных — это имеет :
- просматривает оба фрейма данных и собирает похожие значения для каждого имени в одном кадр данных. Например: у Адама две записи.
- затем прокрутите список и посмотрите, в чем проблема, например. несоответствующий товар или несоответствующее количество и заполните им новый столбец «причина». Что касается остатков, мне просто нужно добавить «недоступно» в df1/df2
- Я хочу сохранять пустую строку после каждого цикла (1) итерация, т. е. после прохождения каждого имени.
Код: Выделить всё
# Result
df3 = pd.DataFrame({
'name': ['Adam', 'Adam', None, 'Ashley', None, 'Don',None, None],
'items': ['Apple', 'Cherry', None, 'Banana', None, 'Date', None, None],
'Quantity': [10, 15, None, 20, None, 25, None, None],
'name_2': ['Adam', 'Adam', None, 'Ashley', None, None, None, 'Sunny'],
'items_2': ['Apple', 'Scale', None, 'Banana', None, None, None, 'Pickle'],
'Quantity_2': [11, 10, None, 15, None, None, None, 20],
'Reason' : ['Quantity mismatch', 'Item mismatch', None, 'Quantity mismatch', None, 'Does not exist in df2', None, 'does not exist in df1']
})
Я собрал эти строки из разных источников и, конечно же, это не работает и показывает разные ошибки.
Код: Выделить всё
new_df = pd.DataFrame()
for item in df1["name"]:
idx = df2[df2["name"].eq(item)].min()
idx2 = df1[df1["name"].eq(item)].min()
new_df = new_df.append(df1[idx2])
new_df = new_df.append(df2[idx])
for i in idx():
if df2["name"][i] in df1["name"]:
if df2["item"][i] in df1[item]:
new_df["Reason"][i] = "Quantity Mismatch"
else:
new_df["Reason"][i] = "Item Mismatch"
else:
new_df["Reason"][i] = "Does not exist in df1"

Подробнее здесь: https://stackoverflow.com/questions/784 ... -and-struc