Python 检查一个数据帧单元格是否包含另一个数据帧中的值';s细胞

Python 检查一个数据帧单元格是否包含另一个数据帧中的值';s细胞,python,pandas,dataframe,Python,Pandas,Dataframe,我正在努力做到以下几点: 给定df1中的一行,如果str(row['code'])在df2['code']的任何行中,那么我希望df2['lamer_url_1']和df2['shoppee_url_1']中的所有行都从df1中获取相应的值。 然后继续df1['code']的下一行 ''' ============== 初始表格: df1 df2 ============== 预期产出: df2 “'我假设来自“df2”的“代码”的公共部分是“-”之前的字符。”。我还假设,从“df1”我们想要“

我正在努力做到以下几点:

给定df1中的一行,如果str(row['code'])在df2['code']的任何行中,那么我希望df2['lamer_url_1']和df2['shoppee_url_1']中的所有行都从df1中获取相应的值。 然后继续df1['code']的下一行

'''

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

初始表格:

df1

df2

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

预期产出:

df2


“'

我假设来自“df2”的“代码”的公共部分是“-”之前的字符。”。我还假设,从“df1”我们想要“lamer_url_1”、“shopee_url_1”,从“df2”我们想要“lamer_url_2”、“shopee_url_2”(如果我错了,请在评论中更正我,以便我可以修改代码):

     code                  lamer_url_1                 shopee_url_1

0  L61B18H089                       b                            a

1  L61S19H014                       e                            d

2  L61S19H015                       z                            y
  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
   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
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)