Python Pandas - ошибка: можно сравнивать только идентичные объекты Series. - PullRequest
0 голосов
/ 31 октября 2018
set df1["name"] = df2["name] if df1["id"] == df2["id]. 

Оба кадра данных имеют разные размеры. Я пытаюсь реализовать это поведение, написав код, приведенный ниже:

   dtl['name'] = dtlLookUp[["name"]].loc[ dtlLookUp["id"] == (dtl["id"]) ]

Однако я получаю сообщение об ошибке:

ValueError: Can only compare identically-labeled Series objects

РЕДАКТИРОВАТЬ:

enter image description here

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Моя проблема решена. Размещать его для тех, кто может столкнуться с той же ошибкой (поскольку я ищу эту ошибку, но ни одно из уже опубликованных решений не помогло мне, поэтому я просто изменил ориентацию решения своей проблемы). Я отнесся к этой проблеме как к левому соединению.

    psb = pd.merge(dtl, dtlLookUp, how='left', on=['id'])

p.s. Это не вежливо ставить каждый вопрос на голосование, просто потому, что вы не можете его понять. Тем не менее, я считаю, что решение поможет многим !!

0 голосов
/ 31 октября 2018

Преобразовать столбцы идентификаторов на обоих информационных кадрах в один и тот же тип d перед проверкой условий. Я предполагаю, что столбцы с именем id должны иметь dtype int .

df1['id'] = df1.id.astype(int)
df2['id'] = df2.id.astype(int)

Поместить значения из другого кадра данных на основе выбора

selection = (df1.id == df2.id)
df1.loc[selection, 'name'] = df2.loc[selection, 'name']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...