首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用不同的数据过滤熊猫的数据

使用不同的数据过滤熊猫的数据
EN

Stack Overflow用户
提问于 2019-08-07 16:32:00
回答 1查看 45关注 0票数 0

我有两个数据帧,其中列包含以下值

代码语言:javascript
复制
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

和另一个数据帧

代码语言:javascript
复制
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,我认为它不像预期的那样工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-07 17:45:03

我不确定这是否是您所说的“包含df1值”的意思,但就目前而言,我假设Name列在df2中包含了df1中的Col列中的一个字符串(即有子字符串),如果这样做,则在df2中的另一列中添加df1中的相应Actual值。

一种方法是使用df.apply

代码语言:javascript
复制
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可以根据您需要的任何东西进行调整。

如果这回答了你的问题,请告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57398808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档