python - Pandas DF.output 写入列(当前数据全部写入一行或一列)

标签 python pandas dataframe selenium

我正在使用 Selenium 从网页的 HTML 正文中提取数据,并使用 pandas 将数据写入 .csv 文件。

数据被提取并写入文件,但是我想操纵数据的格式以写入指定的列,在阅读了许多线程和文档后,我无法理解如何执行此操作。

当前CSV文件输出如下,所有数据在一行或一列

0,
B09KBFH6HM,
dropdownAvailable,
90,
1,
B09KBNJ4F1,
dropdownAvailable,
100,
2,
B09KBPFPCL,
dropdownAvailable,
110

或者如果我使用 [count] count +=1 方法,它将是一行

0,B09KBFH6HM,dropdown可用,90,1,B09KBNJ4F1,dropdown可用,100,2,B09KBFPFPCL,dropdown可用,110

我希望输出的格式如下,

/col1 /col2      /col3             /col4 
0,   B09KBFH6HM, dropdownAvailable, 90, 
1,   B09KBNJ4F1, dropdownAvailable, 100,    
2,   B09KBPFPCL, dropdownAvailable, 110

我尝试使用 columns= options 但在终端中出现错误,并且不明白我应该使用什么功能来在附加详细信息下的文档中实现此目的

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.append.html?highlight=append#pandas.DataFrame.append

简化版本如下

from selenium import webdriver
import pandas as pd

price = []

driver = webdriver.Chrome("./chromedriver")
driver.get("https://www.example.co.jp/dp/zzzzzzzzzz/")


select_box = driver.find_element_by_name("dropdown_selected_size_name")
options = [x for x in select_box.find_elements_by_tag_name("option")]
for element in options:
    price.append(element.get_attribute("value"))
    price.append(element.get_attribute("class"))
    price.append(element.get_attribute("data-a-html-content"))


output = pd.DataFrame(price)
output.to_csv("Data.csv", encoding='utf-8-sig')

driver.close()

我需要单独解析每个项目并附加吗? 我希望将每个 .get_attribute 值写入新列。

您是否可以提供任何建议来解决此问题,因为我对 pandas 不太精通,谢谢您的帮助

最佳答案

 方法类似于@user17242583,但更短一些:

data = [[e.get_attribute("value"), e.get_attribute("class"), e.get_attribute("data-a-html-content")] for e in options]

df = pd.DataFrame(data, columns=['ASIN', 'dropdownAvailable', 'size']) # third column maybe is the product size
df.to_csv("Data.csv", encoding='utf-8-sig')

关于python - Pandas DF.output 写入列(当前数据全部写入一行或一列),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70131810/

相关文章:

python - 当我不在我的 Django 博客文章中上传图片时防止出现 ValueError

python - 根据阈值替换系列值

python - 如果行满足一定范围,如何打印行

python - pandas 在元素上循环

r - 比较 R 中的两个数据帧对象是否相等?

dataframe - 如何将 Julia DataFrame 列中的数值转换为缺失值?

python - 访问单元格内的其他单元格内容 (Colab)

python - 在 slug 中编写波斯语并在 django 的地址栏中使用它

Python BeautifulSoup 从 find_all() 返回错误的输入列表

python - 将 pandas DataFrame 中的相同连续值分组