如何从 DataFrame 中提取前馈循环?

问题描述 投票:0回答:0

在此数据框中,列名也在行名中。列是调节器,它们的调节显示为 1 调节和 0 不调节。

行名 猫1 cat6 猫2 猫5
猫0 0 1 0 1
猫1 0 1 1 0
cat6 1 0 0 1

根据这个数据框,cat0 受 cat6 和 cat5 的监管,因为它有 1 用于 cat6 和 cat5 列。 cat6 也受 cat5 的监管。 cat6 也在行中并且有 1 个用于 cat5,whcih 形成前馈循环。前馈循环的逻辑是node1 ---> node2,node2 ----> node3,node1 ----> node3。 在这里,在这个数据框中,cat5 ----> cat6, cat6 ----> cat0, cat5 ----->cat0.

def find_ffls(df):
    
    ffls = []
    ffl_count = 0
    for col1 in df.columns:
        for col2 in df.columns:
             if col1 != col2:
                  ffl = ((df[col1] == 1) & (df[col2] == 1)).sum()
                  if ffl > 0:
                      ffls.append((col1, col2))
                      ffl_count += 1

    return ffls, ffl_count

ffls, ffl_count = find_ffls(df)
print("Found FFLs:")
for ffl in ffls:
    print(ffl)
print("Total FFLs found: ", ffl_count)

我无法定义node1 -----> node2的规则。 请帮助我编写一个 python 脚本(python 函数)以从此数据框中提取所有 ffls。

python pandas dataframe function bioinformatics
© www.soinside.com 2019 - 2024. All rights reserved.