Python берет данные из двух разных фреймов данных, создает новый фрейм данных и структурирует данные, собранные из двух Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python берет данные из двух разных фреймов данных, создает новый фрейм данных и структурирует данные, собранные из двух

Сообщение Anonymous »

Я новичок в Python и столкнулся с проблемой решения проблем.

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

# 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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