Pandas - Vlookup - повторяющиеся значения в столбце поиска - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь имитировать av lookup (функцию Excel) в Pandas (используя наборы тестовых данных, функция слияния, кажется, работает), - но у меня есть вопрос относительно примера здесь https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html.Если вы посмотрите на первый пример, он объединяет два df, в выводе больше столбцов и больше строк.Я просто хотел бы вернуть новый столбец - например, как работает поиск AV.Тем не менее, когда я пробую свой код даже для вышеупомянутого, я получаю эту ошибку:

agingdf = agingdf.merge(plannerdf, left_on ='Cust_PO_Number', right_on='Cust_PO_Number')

ValueError: The column label 'Cust_PO_Number' is not unique.
For a multi-index, the label must be a tuple with elements corresponding to each level.

Ниже приведен открытый тикет, который похож на мои проблемы, но не имеет разрешения.

https://github.com/pandas-dev/pandas/issues/20769

Я извиняюсь, если это расплывчато, я не могу загрузить файл df и excel, потому что он для работы, и тестовые DF, которые я пробовал, не выдавали ту же ошибку.

В конце дня я просто хочу сделать vlookup с пандами, и значения vlookup могут быть дублированными, так что в этом случае будет получено только то дублирующее значение, которое будет возвращено в новом столбце.

Ниже приведен пример df, помогающий вам представить, что я имею в виду под дубликатами в Cust_PO_Number

a = {'Cust_PO_Number': ['A', 'B', 'C', 'C'], 'ColumnB': [1,2,3,4]}
b = {'Cust_PO_Number': ['A', 'B', 'C', 'C'], 'Column_That_I_Want_added': [2,3,4,5]}
df = pd.DataFrame(data=a)
df2 = pd.DataFrame(data=b)

desired df
c = {'ColumnA': ['A', 'B', 'C', 'C'], 'ColumnB': [1,2,3,4], 'MatchedColumn', [2,3,4,5]}

desireddf = pd.DataFrame(data=c)

Теперь для изучения многоуровневых столбцов

print(plannerdf.columns)
MultiIndex(levels=[['Cust_PO_Number', 'Department']],
           labels=[[0, 1]])
...