代码之家  ›  专栏  ›  技术社区  ›  Melissa Arroyo-Mendoza

如何根据不同数据帧中列的值突出显示一个数据帧中的行或字符串?

  •  1
  • Melissa Arroyo-Mendoza  · 技术社区  · 1 年前

    我希望能够从数据帧的一列中获取值,并在另一个数据帧中找到完全相同的值,以突出显示整行或仅突出显示字符串(无论什么更容易/可能)。

    dataset1 = {'Gene Name':['ampC','fliC','ompC','fruB','yobH','gltP','ruvA','yacC','folD'],
           'FoldChange':['4.54','5.65','7.89','6.45','10.67','4.63','2.65','9.45','5.79'],
            'pvalue':['0','0','0','0','0','0','0','0','0']}
    
    
    df1= pd.DataFrame(dataset1)
    
    dataset2 = {'Gene Name':['gltP','ruvA','yacC','folD']}
    
    df2 = pd.DataFrame(dataset2)
    

    如果可能的话,我想做一些看起来像下面两个例子中的任何一个。

    What I would like my dataset to look like

    我尝试了很多不同的东西,但我仍在学习python,所以不知道如何做到这一点。提前谢谢!

    1 回复  |  直到 1 年前
        1
  •  2
  •   Timeless    1 年前

    你可以检查的基因 df1 isin 的那些 df2 然后 apply 您的CSS样式:

    m = df1["Gene Name"].isin(df2["Gene Name"])
    
    def fn(ser, how):
        import numpy as np
        return np.where(m, f"{how}: red", "")
        
    # choose one of the two
    left = df1.style.apply(fn, how="color", subset=["Gene Name"])
    right = df1.style.apply(fn, how="background-color")
    
    # .to_excel("output.xlsx", index=False) # to save an Excel
    

    两者的预览: