我有一个如下所示的数据框。
=IF(VALUE(D5)<2013,E5*.104,E5*.132)
我正在尝试编写一个for循环,并从数据框中的每个链接获取一些信息。
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
但是,在此过程中,我还需要将相应链接的referenceid打印到输出值列表中。当我这样做时,我注意到我得到如下所示的东西。
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)
我不明白Series([],)是什么意思。有人可以解释这可能是什么问题,如何摆脱Series([],)?如何根据link1列的每个链接信息获取正确的引用ID?
答案 0 :(得分:0)
我通过测试一些组合确定了问题的原因。
在我的脚本中,我写下面的行
link = re.sub(r'(\w+)(?=.*:)', 'http', link)
这会将所有具有https的链接转换为http。但是,当完成此操作时,当我尝试获取相应的referenceid时,它会注意到该链接是错误的。因此,它不会打印参考号。实际上,@ nixon给出的第一个答案是正确的。感谢您指出正确的方向