Копировать столбец из dataframe после сопоставления

spicyramen спросил: 13 июня 2018 в 07:27 в: python

У меня есть 2 фрейма данных, и я нашел общие совпадения на основе столбца (tld), как только совпадение найдено (между столбцом в источнике и получателе) мне нужно чтобы скопировать значение столбца в целевой фрейм назначения?

Dataframe 1: source

   uuid           website company_name           tld
0     11  www.facebook.com     facebook  facebook.com
1     22     www.yahoo.com    yahoo inc     yahoo.com
2     33    www.google.com       Google    google.com
3     44     www.cisco.com        Cisco     cisco.com

Dataframe 2: destination

  id  website           company_name           tld  match uuid
0  a  www.facebook.com      facebook  facebook.com  False  NaN
1  b         www.y.com     Yahoo Inc         y.com  False  NaN
2  c         www.g.com        Google         g.com  False  NaN
3  d         www.g.com    Google Inc         g.com  False  NaN
4  e  www.facebook.com  Facebook Inc  facebook.com  False  NaN

Найти соответствия :

destination.loc[destination.tld.isin(source.tld),'match'] = True

Мне нужно скопировать столбец UUID от источника в столбце UUID в целевом фрейме назначения.

 id           website company_name           tld  match  uuid
0  a  www.facebook.com     facebook  facebook.com   True  11
1  b         www.y.com     YahooInc         y.com  False  NaN
2  c         www.g.com       Google         g.com  False  NaN
3  d         www.g.com    GoogleInc         g.com  False  NaN
4  e  www.facebook.com  FacebookInc  facebook.com   True  11

1 ответ

Есть решение
Wen ответил: 13 июня 2018 в 07:39

Это то, что вам нужно?

df2.merge(df1[['tld','uuid']],on='tld',how='left')
Out[677]: 
  id           website company_name           tld  match  uuid
0  a  www.facebook.com     facebook  facebook.com   True   1.0
1  b         www.y.com     YahooInc         y.com  False   NaN
2  c         www.g.com       Google         g.com  False   NaN
3  d         www.g.com    GoogleInc         g.com  False   NaN
4  e  www.facebook.com  FacebookInc  facebook.com   True   1.0
spicyramen ответил: 13 июня 2018 в 07:37
Нужно скопировать UUID из исходного фреймворка данных, в этом случае facebook.com имеет uuid 1, в вашем решении вы будете hardcoding 1, но может быть любой стоимостью. Например, если я сопоставляю google.com, я должен назначить UUID (3). Отредактировано для ясности
Wen ответил: 13 июня 2018 в 07:39
@spicyramen, используя merge, затем
Wen ответил: 15 июня 2018 в 12:31
Снизь по какой причине?

Дополнительное видео по вопросу: Копировать столбец из dataframe после сопоставления

Как удалить столбец или строку в таблице Excel?

Lesson 3: Deep Learning 2018

Lesson 4: Deep Learning 2018