Python 3.x 熊猫遍历行&;列并根据某些条件进行打印

Python 3.x 熊猫遍历行&;列并根据某些条件进行打印,python-3.x,pandas,for-loop,Python 3.x,Pandas,For Loop,我有一个excel文件&我处理该文件进行数据分析,并创建了一个数据框(Pandas)。 现在我需要得到结果, 我试图通过使用for&if条件对pandas列和行进行迭代来获得它,但没有得到所需的输出 我在excel文件中使用了连字符(-),以便应用一些条件 Excel文件 代码 设置: Fronts字典保存以name/key开头的序列的值/位置 Backs字典保存以name/key结尾的序列的值/位置 序列是保存所有组合关系的列表 位置\计数器存储最后生成序列的位置 from collecti

我有一个excel文件&我处理该文件进行数据分析,并创建了一个
数据框(Pandas)。

现在我需要得到结果, 我试图通过使用
for&if
条件对pandas列和行进行迭代来获得它,但没有得到所需的输出
我在excel文件中使用了连字符(-),以便应用一些条件

Excel文件

代码

设置:

Fronts
字典保存以name/key开头的序列的值/位置

Backs
字典保存以name/key结尾的序列的值/位置

序列
是保存所有组合关系的列表

位置\计数器
存储最后生成序列的位置

from collections import deque
import pandas as pd

data = pd.read_csv("Names_relations.csv")

fronts = dict()
backs = dict()

sequences = []
position_counter = 0
。对于每个
选择与正则表达式模式匹配的值

selector = data.apply(lambda row: row.str.extractall("([\w\d]+)"), axis=1)
对于
选择器中的每个
关系
,获取提取的元素

让他们排队

检查新的
关系的
front
是否可以附加到任何以前的序列

from collections import deque
import pandas as pd

data = pd.read_csv("Names_relations.csv")

fronts = dict()
backs = dict()

sequences = []
position_counter = 0
如果是:

  • 取该序列的
    位置
  • 将序列本身视为
    llist2
  • llist2
  • 添加序列
  • 使用连接的LList更新序列
  • 使用序列当前结尾的位置更新
    backs
  • 最后,从
    前面和
    后面移除前一序列中经过检查的末端
  • 与前面的
    类似。keys():

    如果没有与新关系匹配的现有序列:

  • 保存那个关系
  • 使用该关系的位置更新
    前面
    后面
  • 更新位置计数器
  • 产出:

    A -> B -> C -> E -> I
    F -> G -> L
    H -> J -> K
    A1 -> B1
    C1 -> A1
    Z -> X
    
    #if binf is active:
    # A -> B -> C -> E -> I
    # F -> G -> L
    # H -> J -> K
    # C1 -> A1 -> B1
    # Z -> X
    
    Name_relations.csv

    Start_Name,Mid_Name_1,Mid_Name_2,End_Name
    A,-,B,-
    -,B,C,-
    -,C,E,-
    F,-,G,-
    H,-,J,-
    -,E,-,I
    -,J,-,K
    -,G,-,L
    -,A1,-,B1
    C1,-,A1,-
    Z,-,-,X
    

    谢谢你@woblob你的回答救了我!
    A -> B -> C -> E -> I
    F -> G -> L
    H -> J -> K
    A1 -> B1
    C1 -> A1
    Z -> X
    
    #if binf is active:
    # A -> B -> C -> E -> I
    # F -> G -> L
    # H -> J -> K
    # C1 -> A1 -> B1
    # Z -> X
    
    Start_Name,Mid_Name_1,Mid_Name_2,End_Name
    A,-,B,-
    -,B,C,-
    -,C,E,-
    F,-,G,-
    H,-,J,-
    -,E,-,I
    -,J,-,K
    -,G,-,L
    -,A1,-,B1
    C1,-,A1,-
    Z,-,-,X