Python 3.x 熊猫遍历行&;列并根据某些条件进行打印
我有一个excel文件&我处理该文件进行数据分析,并创建了一个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
数据框(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