如何计算Pandas的价值

2024-10-01 00:21:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我很抱歉,如果我没有任何意义,英语不是我的母语,我只是一个星期的Python和熊猫。你知道吗

所以,我有一个很长的转录因子数据框架和一长串的必需基因,到目前为止我所做的是确定一个受转录因子调控的基因是否是必需基因。像这样:

In:
df2 = regulon.copy()
lista_genes = (genes['Esenciales'].values.tolist())
df2['Esencialidad'] = (pd.DataFrame(regulon['Target'].isin(lista_genes)))
df2[['Esencialidad']] = df2[['Esencialidad']].astype(str)
df2.ix[df2.Esencialidad == 'True' , 'Esencialidad'] = 'Esencial'
df2.ix[df2.Esencialidad == 'False' , 'Esencialidad'] = 'No esencial'
df2.to_excel("salida2.xlsx", index = False)
df2
Out:
    TF    Target    Regulation  Score   Esencialidad
0   AccB    accB          -     null    Esencial
1   AccB    accC          -     null    Esencial
2   AcrR    acrA          -     Weak    No esencial
3   AcrR    acrB          -     Weak    No esencial
4   AcrR    acrR          -     Weak    No esencial
5   AcrR    marA          -     Strong  No esencial
6   AcrR    marB          -     Strong  No esencial
7   AcrR    marR          -     Strong  No esencial
8   AcrR    micF          -     Weak    No esencial
9   AcrR    soxR          -     Strong  No esencial
10  AcrR    soxS          -     Strong  No esencial
11  Ada     alkB          -     Strong  No esencial
12  Ada     alkB          +     Strong  No esencial

接下来我要做的是,确定有多少基因受TF调控。像这样:

In: 
genes_regulados = regulon['TF'].value_counts()
TF = pd.DataFrame(genes_regulados)
TF.reset_index(inplace=True)
TF.rename(columns={'index': 'TF', 'TF': 'Genes_regulados'}, inplace=True)
TF = TF.sort_values('TF').reset_index(drop=True)
TF['Esenciales'] = (pd.DataFrame(regulon['Target'].isin(lista_genes)))
TF
Out:

    TF  Genes_Regulados
0   AccB    2
1   AcrR    9
2   Ada     6
3   AdiY    8
4   AgaR    11
5   AidB    1
6   AlaS    1
7   AllR    9

我现在要做的是,在一个新的专栏里,确定在给定的TF中,有多少受调控的基因是必需的,而在另一个专栏里,有多少不是必需的。你知道吗

我需要你的帮助。我被困住了,我不知道怎么做。你知道吗

我想要的输出是这样的:

TF  Genes Regulados Esenciales  No Esenciales
AcrR         4         0           4           
Ada          6         0           6          
AdiY         8         0           8             
AgaR        11         0          11          
AidB         1         0           1    
AlaS         1         1           0    
AllR         9         0           9    
AllS         3         0           3    
AlsR         6         0           6    
AppY        10         0          10    
AraC        19         6          13    

更新

感谢JBr,我得到了我所需要的。现在我想知道是否有一种方法可以让它变得更复杂,得到多少关键基因对给定的TF和TF有正调控,多少关键基因有负调控。你知道吗

我想要的输出是这样的:

TF  Genes_regulados Esenciales  No Esenciales Esenciales_positivos Esenciales_negativos
AcrR         4         0           4                   0                   0
Ada          6         0           6                   0                   0
AdiY         8         0           8                   0                   0
AgaR        11         0          11                   0                   0
AidB         1         0           1                   0                   0
AlaS         1         1           0                   0                   1
AllR         9         0           9                   0                   0
AllS         3         0           3                   0                   0
AlsR         6         0           6                   0                   0
AppY        10         0          10                   0                   0
AraC        19         6          13                   4                   2

谢谢。你知道吗


Tags: notrueindextf基因strongdf2ada
1条回答
网友
1楼 · 发布于 2024-10-01 00:21:26

apply是你的朋友吗

def count_tfs_essential(tf_val, df2, esencial_val):
    '''returns count of rows in df2 having specific tf_val and esencial_val'''
    df2_con_tf_val = df2[(df2["TF"] == tf_val)]
    df2_con_tf_val_y_essencial = df2_con_tf_val[df2_con_tf_val["Esencialidad"] == esencial_val]

    count = len(df2_con_tf_val_y_essencial.index)

    return count

TF["Esenciales"] = TF["TF"].apply(lambda tf_val: count_tfs_essential (tf_val, df2, "Esencial"))
TF["No Esenciales"] = TF["TF"].apply(lambda tf_val: count_tfs_essential (tf_val, df2, "No esencial"))

*所需df:

     TF  Genes_Regulados  Esenciales  No Esenciales
0  AccB                2           2              0
1  AcrR                9           0              9
2   Ada                6           0              2
3  AdiY                8           0              0
4  AgaR               11           0              0
5  AidB                1           0              0
6  Alas                1           0              0
7  AllR                9           0              0

相关问题 更多 >