可以先将每个人的选课情况用字典存储起来,然后再将字典转换成DataFrame。具体实现代码如下:
import pandas as pd
# 读取原始数据
df = pd.read_excel('data.xls')
# 将每个人的选课情况用字典存储起来
data = {}
for index, row in df.iterrows():
id = row['id']
subject = row['subject']
if id not in data:
data[id] = {'id': id, '语文': 0, '数学': 0, '英语': 0}
if subject == '语文1' or subject == '语文2':
data[id]['语文'] = 1
elif subject == '数学':
data[id]['数学'] = 1
elif subject == '英语':
data[id]['英语'] = 1
# 将字典转换成DataFrame
new_df = pd.DataFrame(list(data.values()))
# 保存结果
new_df.to_excel('result.xls')
其中,data
字典的键是每个人的id,值是一个包含id、语文、数学、英语四个字段的字典。遍历原始数据时,如果当前行的id已经在data
字典中出现过,则更新该人的选课情况;否则,创建一个新的字典表示该人的选课情况。最后,将data
字典转换成DataFrame并保存到文件中。
url = "file:///" + os.path.abspath("C:/.../...html")
driver.get(url)
#第一种方法,但是太麻烦,如果复选框有很多代码冗余
driver.find_element_by_id("c1").click()
driver.find_element_by_id("c2").click()
#第二种方法,先定位出input类型的,在定位type是checkbox的
driver.find_elements_by_tag_name("input")
for button in buttons:
if button.get_attribute('type')=='checkbox':
button.click()
time.sleep(6)