У меня есть два фрейма данных. Второй фрейм данных является производным от первого фрейма данных. Я обновляю столбец во втором фрейме данных, а затем хочу вернуть обновленные значения в первый фрейм данных. Я пробовал «объединить», но он дает мне два столбца с суффиксами «_x» и «_y»
import pandas
lotQtyQueryForDF = pandas.read_sql_query(refreshQuery,conForInfo)
dataFrameOfLots = pandas.DataFrame(lotQtyQueryForDF,columns=['Customer','Stage','ProdType','Brand','ProdName','Size','Strength','Lot','PackedOn','Qty','Available'])
dataFrameOfLots['Available']=dataFrameOfLots["Available"].fillna(dataFrameOfLots['Qty'])
#inserting columns
dataFrameOfLots['QtyInTransaction']=0
dataFrameOfLots['IndexCol'] = range(1, len(dataFrameOfLots) + 1)
dataFrameFiltered=dataFrameOfLots.query('Brand=="XYZ" & Customer=="ABC"')
dataFrameFiltered.loc[:,'Qty in transaction']=34
dataFrameFiltered2=dataFrameFiltered[['Qty in transaction','IndexCol']].copy()
dataFrameOfLots.merge(dataFrameFiltered2,on='IndexCol',how='outer')
Входной набор данных:
Customer Stage ProdType Brand ProdName Size Strength Lot PackedOn Qty Available
DEF A Bulk YYY Test Test Weak 1 20200101 10 5
ABC A Bulk XYZ Test Test Weak 1 20200101 10 5
GHI A Bulk YTY Test Test Weak 1 20200101 10 5
ABC B RAW XYZ Test Test Weak 1 20200101 10 5
Фактический результат:
Customer Stage ProdType Brand ProdName Size Strength Lot PackedOn Qty Available QtyInTransaction_x IndexCol QtyInTransaction_y
DEF A Bulk YYY Test Test Weak 1 20200101 10 5 0 1 0
ABC A Bulk XYZ Test Test Weak 1 20200101 10 5 0 2 34
GHI A Bulk YTY Test Test Weak 1 20200101 10 5 0 3 0
ABC B RAW XYZ Test Test Weak 1 20200101 10 5 0 4 34
Ожидаемый результат:
Customer Stage ProdType Brand ProdName Size Strength Lot PackedOn Qty Available IndexCol QtyInTransaction
DEF A Bulk YYY Test Test Weak 1 20200101 10 5 1 0
ABC A Bulk XYZ Test Test Weak 1 20200101 10 5 2 34
GHI A Bulk YTY Test Test Weak 1 20200101 10 5 3 0
ABC B RAW XYZ Test Test Weak 1 20200101 10 5 4 34
Правильный ли подход - запрос? Как мне слить, чтобы отображался только один столбец?
Спасибо