输出显示类似Series([],)的东西,如何解决呢?

时间:2018-11-28 15:45:49

标签: python python-3.x pandas for-loop series

我有一个如下所示的数据框。

=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?

1 个答案:

答案 0 :(得分:0)

我通过测试一些组合确定了问题的原因。

在我的脚本中,我写下面的行

link = re.sub(r'(\w+)(?=.*:)', 'http', link)

这会将所有具有https的链接转换为http。但是,当完成此操作时,当我尝试获取相应的referenceid时,它会注意到该链接是错误的。因此,它不会打印参考号。实际上,@ nixon给出的第一个答案是正确的。感谢您指出正确的方向