在此数据框中,列名也在行名中。列是调节器,它们的调节显示为 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。