Python 将列表转换为数据帧不需要';行不通

Python 将列表转换为数据帧不需要';行不通,python,pandas,dataframe,Python,Pandas,Dataframe,在循环之后,我很难将列表转换为数据帧。我得到了前3行的结果,但是其余的输出是NaN值。 这是我的密码。非常感谢您的帮助。多谢各位 for i in range(0,5000): data=data_phished["url"][i] if not urlparse(data).scheme: url = 'https://' + data print(i),print(url) urlR

在循环之后,我很难将列表转换为数据帧。我得到了前3行的结果,但是其余的输出是NaN值。 这是我的密码。非常感谢您的帮助。多谢各位

    for i in range(0,5000):
        data=data_phished["url"][i]
        if not urlparse(data).scheme:
            url = 'https://' + data
        print(i),print(url)

    urlRequest.append(fe.urlRequest(url,soup,hostname))
    urlAnchor.append(fe.urlAnchor(url,soup,hostname))
    linksTags.append(fe.linksTags(url))
    sfh.append(fe.sfh(url,soup,hostname))
    emailSubmit.append(fe.emailSubmit(url))
    urlAbnormal.append(fe.urlAbnormal(url,hostname))

    #Storing extracted features in a list
    label = []
    for i in range(0,5000):
        label.append(1)

    #Converting the list to dataframe

    feat_col = {'request_url':pd.Series(urlRequest), 'anchor_url':pd.Series(urlAnchor),'links_in_tags':pd.Series(linksTags),'server_from_handler':pd.Series(sfh),'submit_info_email':pd.Series(emailSubmit),'abnormal_url':pd.Series(urlAbnormal),'class':pd.Series(label)}

    abn = pd.DataFrame(feat_col)
    abn
这是我收到的输出(附件)
[1] :

我相信您正在尝试将dict转换为数据帧。为此,您必须使用

pd.DataFrame.from_dict(feat_col)

首先,您实际上不需要在
feat\u col
dict中使用pd.Series

feat_col={'request_url':urlRequest,'anchor_url':urlAnchor,'links_in_tags':linksTags,'server_from_handler':sfh,'submit_info_email':emailSubmit,'normal_url':urlnormal,'class':label}
应该足够了。我认为您应该在for循环之后缩进特征集合部分:

    for i in range(0,5000):
        data=data_phished["url"][i]
        if not urlparse(data).scheme:
            url = 'https://' + data
        print(i),print(url)

        # These lines should be indented to be run in the for loop.
        urlRequest.append(fe.urlRequest(url,soup,hostname))
        urlAnchor.append(fe.urlAnchor(url,soup,hostname))
        linksTags.append(fe.linksTags(url))
        sfh.append(fe.sfh(url,soup,hostname))
        emailSubmit.append(fe.emailSubmit(url))
        urlAbnormal.append(fe.urlAbnormal(url,hostname))

编辑:最终代码


标签=[]
对于范围(05000)内的i:
数据=数据仿冒[“url”][i]
如果不是URL解析(数据)。方案:
url='https://'+数据
打印(i),打印(url)
尝试:
#这些行应该缩进以在for循环中运行。
追加(fe.urlRequest(url、soup、主机名))
append(fe.URLANCHER(url、soup、主机名))
linksTags.append(fe.linksTags(url))
append(fe.sfh(url、soup、主机名))
emailSubmit.append(fe.emailSubmit(url))
附加(fe.URLnormal(url,主机名))
标签.附加(1)
例外情况除外,如e:
打印(“某些错误”)
feat_col={'request_url':urlRequest,'anchor_url':urlAnchor,'links_in_tags':linksTags,'server_from_handler':sfh,'submit_info_email':emailSubmit,'normal_url':urlnormal,'class':label}
abn=pd.数据帧(专长)
荷兰银行

请提供所需信息。显示中间结果与预期结果的偏差。我们应该能够将单个代码块粘贴到文件中,运行它,并重现您的问题。这也让我们可以在您的上下文中测试任何建议。根据本网站的目的,不接受非网站链接和文本图像。你发布的代码没有运行。谢谢@armamut,我尝试了这个,我缩进了代码,但我得到了这个错误:URLError:你的一个url应该被破坏、无法访问或损坏。尝试使用
try:except:
block-around-url-part我已经编辑了答案我已经尝试了最后的代码,非常感谢您的帮助,但是仍然得到相同的错误脚本没有尝试:except:worked。但是,每当我重新运行代码以重新启动内核时,它都会给我一个错误。我正在visual studio中使用jupyter笔记本,谢谢@anik jha。我尝试了这一点,但得到了以下结果:0 NaN NaN NaN 1您可以分享feat_colu dict值的头部和维度吗?对于初学者,您可以尝试以下方法:``abn['request_url']=urlRequest abn['anchor_url']=urlAnchor,看看它是否有效,您不必使用它。。您只需将dict传递到pd.DataFrame构造函数中