我有一个数据帧,如下所示。
df = pd.DataFrame({ 'reference_id':['012ABH3', '012ABD44', '023HBA3', '032IHJK4', '543BHKI0'], 'link1': ['http://ll.abc.com/LNLDSOUYsda5443', 'http://ll.abc.com/KJBAKJBADndkja1223', 'http://ll.abc.com/KJADBDKAJB9973Fsdad', 'http://ll.abc.com/KAHSBAKHBjj*&*', 'http://ll.abc.com/JBKJBKJBDSwe77676']})
df
reference_id link1
0 012ABH36 http://ll.abc.com/LNLDSOUYsda5443
1 012ABD44 http://ll.abc.com/KJBAKJBADndkja1223
2 023HBA35 https://ll.abc.com/KJADBDKAJB9973Fsdad
3 032IHJK4 http://ll.abc.com/KAHSBAKHBjj*&*
4 543BHKI0 https://ll.abc.com/JBKJBKJBDSwe77676
我正在尝试编写一个for循环,并从数据帧中的每个链接获取一些信息。
for i in df['link1']:
if str(i).startswith('http'):
link = i
link = re.sub(r'(w+)(?=.*:)', 'http', link)
rid = df.loc[df['link1'] == link, 'reference_id']
rid = pid.to_string(index=False)
print(rid)
但在这个过程中,我还需要将相应链接的referenceid打印到输出值列表中。当我这样做的时候,我注意到我得到了如下所示的东西。
012ABH36
012ABD44
Series([], )
Series([], )
543BHKI0
我不明白系列([],(是什么意思。有人能解释一下这可能出了什么问题吗?我该如何摆脱系列赛([],(?如何获得link1列的每个链接的正确引用信息?
我通过测试一些组合确定了问题的原因。
在我的脚本中,我写了下面一行
link = re.sub(r'(w+)(?=.*:)', 'http', link)
这是将所有具有https的链接转换为http。但是,当完成此操作并尝试获取相应的referenceid时,它会注意到链接是错误的。因此,它不打印引用。事实上,@nixon给出的第一个答案是正确的。感谢你指向正确的方向