Как обеспечить отсутствие дубликатов в случае слияния панд и подсчета количества пробелов? - PullRequest
0 голосов
/ 22 октября 2019

У меня есть два кадра данных. Я объединил три столбца, чтобы создать уникальный ключ - «Основной ключ» в обоих кадрах данных, а затем объединил их на основе «Основного ключа».

df1['Main Key'] = df1['Col1'].str.cat(df1['Col2'],sep="|").str.cat(df1['Col3'],sep="|")
df2['Main Key'] = df2['Col_1'].str.cat(df2['Col_2'],sep="|").str.cat(df2['Col_3'],sep="|")
df_inner = pd.merge(df2,df1,on="Main Key",how="left")

В df2 и 6600 есть 6000 записейзаписей в df1, однако последний df_inner содержит 10000 записей. Это потому, что для 1 записи в df2 может быть несколько совпадений в df1. Как убедиться, что этого дублирования нет в df_inner?

Я хочу, чтобы первый экземпляр был записан, т.е. df_inner должен иметь 6000 записей только в соответствии с df2. Кроме того, как я могу создать список или Dataframe записей df2, которые не соответствуют ни одной записи df1?

1 Ответ

1 голос
/ 22 октября 2019

Я хочу, чтобы первый экземпляр был записан ..

Вы можете использовать df1 = df1.drop_duplicates("Main Key", keep="first"), а затем объединить df_inner = pd.merge(df2,df1,on="Main Key",how="left")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...