首页 > 解决方案 > 使用 Pandas Dataframe 获得意外输出

问题描述

我正在抓取一个网站并将其存储在使用Pandas DataFrame. 没有错误,但得到了奇怪的输出,因为第一列的行结束,第二列中插入的数据从那里开始。让我给你一个直观的例子:

Column 1    Column 2    Column 3
       x
       x
       x
                   x
                   x
                   x
                               x
                               x
                               x

如您所见,数据以这种形式存储在.csv文件中,正如我所说的,下一个数据将填充前一个数据的末尾。

这是我的代码:

    elements_1 = driver.find_elements_by_css_selector(one_)

    web_content_list = []
    for ele in elements_1:
        web_content_dict = {}
        web_content_dict["Title"] = ele.text
        web_content_list.append(web_content_dict)

    elements_2 = driver.find_elements_by_css_selector(two_)

    for ele2 in elements_2:
        web_content_dict = {}
        web_content_dict["Title2"] = ele2.text
        web_content_list.append(web_content_dict)

    elements_3 = driver.find_elements_by_css_selector(three_)

    for ele3 in elements_3:
        web_content_dict = {}
        web_content_dict["Title3"] = ele3.text
        web_content_list.append(web_content_dict)

    df = pd.DataFrame(web_content_list)
    df.to_csv(csv_file_location,
              index=False, mode='a', encoding='utf-8')

也不要告诉我使用dropna()或类似的东西,因为当文件具有空值时这有效,但在我的情况下,它不是!所以这里不行。。。

任何帮助,将不胜感激...

标签: pythonpython-3.xpandasdataframe

解决方案


唔..

如果您只想要具有以下结构的数据框,则后处理将是合适的。

尝试这个。

new_df = pd.DataFrame({'Column 1': df['Column 1'].dropna(),
              'Column 2': df['Column 2'].dropna(),
              'Column 3': df['Column 3'].dropna()})

推荐阅读