Проверьте, содержит ли ячейка информационного кадра значение, которое находится в ячейке другого информационного кадра - PullRequest
1 голос
/ 26 апреля 2019

Я пытаюсь сделать следующее:

Учитывая строку в df1, если str (row ['code']) находится в любых строках для df2 ['code'], то я бы хотел, чтобы все эти строки были в df2 ['lamer_url_1'] и df2 ['shopee_url_1 '], чтобы получить соответствующие значения, начиная с df1. Затем перейдите к следующей строке для df1 ['code'] ...

'' '

==============

Исходные таблицы:

df1

     code                  lamer_url_1                 shopee_url_1

0  L61B18H089                       b                            a

1  L61S19H014                       e                            d

2  L61S19H015                       z                            y

df2

  code             lamer_url_1   shopee_url_1   lamer_url_2  shopee_url_2

0 L61B18H089-F1424         NaN           NaN          NaN           NaN

1 L61S19H014-S1500         NaN           NaN          NaN           NaN

2 L61B18H089-F1424         NaN           NaN          NaN           NaN

==============

Ожидаемый результат:

df2

   code              lamer_url_1  shopee_url_1  lamer_url_2  shopee_url_2
0  L61B18H089-F1424           b             a          NaN           NaN

1  L61S19H014-S1500           e             d          NaN           NaN

2  L61B18H089-F1424           b             a          NaN           NaN

'' '

1 Ответ

1 голос
/ 26 апреля 2019

Я предположил, что общей частью "кода" из "df2" являются символы перед "-".Я также предположил, что из «df1» нам нужны «lamer_url_1», «shopee_url_1», а из «df2» мы хотим «lamer_url_2», «shopee_url_2» (исправьте меня в комментарии, если я ошибаюсь, чтобы я мог полировать код):

df1.set_index(df1['code'], inplace=True)
df2.set_index(df2['code'].apply(lambda x: x.split('-')[0]), inplace=True)
df2.index.names = ['code_join']

df3 = pd.merge(df2[['code', 'lamer_url_2', 'shopee_url_2']],
               df1[['lamer_url_1', 'shopee_url_1']],
               left_index=True, right_index=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...