将列表转储到csv导出中

时间:2018-11-11 23:29:30

标签: python pandas

我需要添加列标题,然后将以下内容导出到csv。 但是,当我导出列表时,我得到了列中每个字符的最后一行。

这是输出:

Current output of list

如果我实现df = pd.DataFrame([d]) 我得到以下信息:

enter image description here

创建此列表的代码如下

soup=BeautifulSoup(s,'lxml')
soup.prettify()
for anchor in soup.findAll('a', href=True):
s=anchor['href']
if 'bus' in s:
    urlparse(s)
    path = urlparse(s).path[1:]
    parts = path.split('/')
    d= parts[2:4]
    df=pd.DataFrame(d)
    print(df)

1 个答案:

答案 0 :(得分:1)

我认为问题在于,对于循环的每次迭代,您都在创建一个 new DataFrame;而我想您可能想要的是一个DataFrame,其中包含d的所有 all 值。请尝试以下操作:

# Instantiate an empty list to collect values of `d` for each iteration
d_values = []

soup=BeautifulSoup(s,'lxml')
soup.prettify()
for anchor in soup.findAll('a', href=True):
    s=anchor['href']

    if 'bus' in s:
        urlparse(s)
        path = urlparse(s).path[1:]
        parts = path.split('/')
        d = parts[2:4]

        # Append `d` to your list, creating a list of lists
        d_values.append(d)

# Once your loop is done, create a DataFrame from your list of lists
df = pd.DataFrame(d_values, columns=['col1name','col2name'])