Python 检查一个数据帧单元格是否包含另一个数据帧中的值';s细胞
我正在努力做到以下几点: 给定df1中的一行,如果str(row['code'])在df2['code']的任何行中,那么我希望df2['lamer_url_1']和df2['shoppee_url_1']中的所有行都从df1中获取相应的值。 然后继续df1['code']的下一行 ''' ============== 初始表格: df1 df2 ============== 预期产出: df2Python 检查一个数据帧单元格是否包含另一个数据帧中的值';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”我们想要“
“'我假设来自“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)