'Vlookup' и вернуть 'совпадать или не совпадать' на основе соответствующих строк с помощью PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 'Vlookup' и вернуть 'совпадать или не совпадать' на основе соответствующих строк с помощью Python

Сообщение Anonymous »

У меня есть 3 столбца, имя, дата и количество для таблицы A, и таблица B. Мы добавляем столбец D, который является результатом объединения имени столбца, даты и количества. Я хотел бы получить столбец D в таблице A с таблицей B. Если есть совпадение, вывод будет «да» в столбце E; Если нет совпадения, то «нет». и количество является/является причиной не совпадения. Например, если имя не совпадает, верните вывод в столбце F как «не совпадать с именем», в противном случае вернуть выход как «Имя сочетания». < /P>
Проблема, с которой я столкнулся прямо сейчас, является выходом (Совместите или не совпадаете), которое я нашел для имени, верен, но не для даты и количества. Я думаю, что это в основном связано с от 1 ко многим, многим-ко многим отношениям, в которых есть несколько повторяющихся в рамках имени, дате и количества. Я вполнял им время от времени из -за неправильного вывода, особенно для даты и количества.

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

#Concate the 3 columns

df2_A = df1_A.copy()
df2_A.loc[:, 'A_Concate'] = df2_A['Name'].astype(str) + df2_of01['Date'].astype(str) + df2_A['Quantity'].astype(str)

df2_B = df1_B.copy()
df2_B.loc[:, 'B_Concate'] = df2_B['Name'].astype(str) + df2_Name['Date'].astype(str) + df2_B['Quantity'].astype(int).astype(str)

#Vlookup concatenated column for Table A and B
df2_A ['Match with B?'] = df2_A ['A_Concate'].isin(df2_B['B_Concate']).map({True: 'Yes', False: 'No'})

#Find reason of not match
df2_A ['Match name?'] = df2_A .apply(lambda row: 'Not match name' if row['Match with B?'] == 'No' and row['name'] not in df2_B['Name'].unique() else 'Match name', axis=1)

df2_A ['Match date?'] = df2_A .apply(lambda row: 'Match date' if row['Match with B?'] == 'Yes' else ('Not match date' if row['Date'] not in df2_B.loc[df2_B['B_Concate'] == row['A_Concate'], 'Date'].values else 'Match date'), axis=1)

df2_A ['Match quantity?'] = df2_A .apply(lambda row: 'Not match quantity' if row['Match with B?'] == 'No' and row['Match part?'] == 'Not match part' else ('Not match quantity' if row['Match with B?'] == 'No' and row['SUGGESTED QTY'] not in df2_B['Quantity'].unique() else 'Match quantity'), axis=1)

Какая часть можно улучшить, чтобы вывод мог быть возвращен на основе конкатенированных строк?

Подробнее здесь: https://stackoverflow.com/questions/761 ... using-pyth
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • MS Visual c++ «Количество исходных файлов и соответствующих выходных данных должно совпадать»
    Anonymous » » в форуме C++
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Как создать код для Vlookup в Python?
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Получите свойство Vlookup класса worksheetFunction.
    Гость » » в форуме Excel
    0 Ответы
    1371 Просмотры
    Последнее сообщение Гость
  • Есть ли эквивалент Java для Excel Vlookup?
    Anonymous » » в форуме JAVA
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Есть ли эквивалент Java для Excel Vlookup?
    Anonymous » » в форуме Android
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous

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