我有两个数据帧,其中列包含以下值
df1:
Col Actual
SA~all all
SA~bme beyond media engagers
SA~bsv beyond site visitors
SA~blk blink
SA~beng brand.com media engagers
SA~by buy
SA~cs choose
SA~tgm gen-targeted mass和另一个数据帧
df2:
Name
CN~QLED8KLOPromotion_PD~1200x628PPLProspecting_MK~es_CH~soc_MD~c_AD~ss1x1_DT~cross_FM~sban_PB~fcbk_SZ~1200x628_RT~cpc_TG~bhv_SA~tgm_VV~dc_IT~soc_TS~IPES_FF~None _PH~laun_MK~es_YQ~19q2_BS~im_PR~tv_SB~brand_OB~awa_PK~CTR_FS~lo_CP~
CN~QLED8KLOPromotion_PD~1200x628PPLProspecting_MK~es_CH~soc_MD~c_AD~ss1x1_DT~cross_FM~sban_PB~fcbk_SZ~1200x628_RT~cpc_TG~bhv_SA~tgm_VV~dc_IT~soc_TS~IPES_FF~None _PH~laun_MK~es_YQ~19q2_BS~im_PR~tv_SB~brand_OB~awa_PK~CTR_FS~lo_CP~
CN~QLED8KLOPromotion_PD~1200x628PPLProspecting_MK~es_CH~soc_MD~c_AD~ss1x1_DT~cross_FM~sban_PB~fcbk_SZ~1200x628_RT~cpc_TG~bhv_SA~tgm_VV~dc_IT~soc_TS~IPES_FF~None _PH~laun_MK~es_YQ~19q2_BS~im_PR~tv_SB~brand_OB~awa_PK~CTR_FS~lo_CP~
CN~QLED8KLOPromotion_PD~1200x628PPLProspecting_MK~es_CH~soc_MD~c_AD~ss1x1_DT~cross_FM~sban_PB~fcbk_SZ~1200x628_RT~cpc_TG~bhv_SA~tgm_VV~dc_IT~soc_TS~IPES_FF~None _PH~laun_MK~es_YQ~19q2_BS~im_PR~tv_SB~brand_OB~awa_PK~CTR_FS~lo_CP~
CN~QLED8KLOPromotion_PD~1200x628PPLProspecting_MK~es_CH~soc_MD~c_AD~ss1x1_DT~cross_FM~sban_PB~fcbk_SZ~1200x628_RT~cpc_TG~bhv_SA~tgm_VV~dc_IT~soc_TS~IPES_FF~None _PH~laun_MK~es_YQ~19q2_BS~im_PR~tv_SB~brand_OB~awa_PK~CTR_FS~lo_CP~
CN~QLED8KLOPromotion_PD~1200x628PPLProspecting_MK~es_CH~soc_MD~c_AD~ss1x1_DT~cross_FM~sban_PB~fcbk_SZ~1200x628_RT~cpc_TG~bhv_SA~tgm_VV~dc_IT~soc_TS~IPES_FF~None _PH~laun_MK~es_YQ~19q2_BS~im_PR~tv_SB~brand_OB~awa_PK~CTR_FS~lo_CP~
CN~QLED8KLOPromotion_PD~1200x628PPLProspecting_MK~es_CH~soc_MD~c_AD~ss1x1_DT~cross_FM~sban_PB~fcbk_SZ~1200x628_RT~cpc_TG~bhv_SA~tgm_VV~dc_IT~soc_TS~IPES_FF~None _PH~laun_MK~es_YQ~19q2_BS~im_PR~tv_SB~brand_OB~awa_PK~CTR_FS~lo_CP~
CN~QLED8KLOPromotion_PD~1200x628PPLProspecting_MK~es_CH~soc_MD~c_AD~ss1x1_DT~cross_FM~sban_PB~fcbk_SZ~1200x628_RT~cpc_TG~bhv_SA~tgm_VV~dc_IT~soc_TS~IPES_FF~None _PH~laun_MK~es_YQ~19q2_BS~im_PR~tv_SB~brand_OB~awa_PK~CTR_FS~lo_CP~
CN~QLED8KLOPromotion_PD~1200x628PPLProspecting_MK~es_CH~soc_MD~c_AD~ss1x1_DT~cross_FM~sban_PB~fcbk_SZ~1200x628_RT~cpc_TG~bhv_SA~tgm_VV~dc_IT~soc_TS~IPES_FF~None _PH~laun_MK~es_YQ~19q2_BS~im_PR~tv_SB~brand_OB~awa_PK~CTR_FS~lo_CP~我正在寻找一种方法来查找包含df1值的行,并在df2中添加一个新列,其中包含来自df1['Actual']列的值。
有可能吗?我试过使用numpy select,我认为它不像预期的那样工作。
发布于 2019-08-07 17:45:03
我不确定这是否是您所说的“包含df1值”的意思,但就目前而言,我假设Name列在df2中包含了df1中的Col列中的一个字符串(即有子字符串),如果这样做,则在df2中的另一列中添加df1中的相应Actual值。
一种方法是使用df.apply
def findSubstring(bigString, ss = list(df1["Col"]):
for x in ss:
if x in bigString:
return x
return "NO MATCHING STRINGS"
def getVal(row, otherdf = df1):
substring = findSubstring(row["Actual"])
if substring != "NO MATCHING STRINGS":
return list(df1[df1["Col"] == substring]["Actual"])[0]
df2["Actual"] = df2.apply(lambda x: getVal(x), axis =1)也许有一种更快的方法,但是df.apply可以根据您需要的任何东西进行调整。
如果这回答了你的问题,请告诉我。
https://stackoverflow.com/questions/57398808
复制相似问题