result.append(data[s_li])
时间: 2024-04-18 17:26:35 浏览: 33
根据您的代码,`data[s_li]`表示从`data`数据框中获取名为`s_li`的列。然后,您将该列的数据添加到`result`列表中。
这段代码的作用是将满足条件的列添加到`result`列表中。您可以根据需要在其他地方使用`result`列表的值,比如进一步处理或分析。
如果您有任何其他问题,请随时提问!
相关问题
result = [] for s_li in data.columns: ## 打印列名 print(s_li) if '方药' in str(s_li) : result.append(data[s_li]) print(result) #pd.DataFrame(result).to_excel(r'F:\python_project\result.xls') # 保存的路径 data2 = pd.read_excel(file2, sheet_name=0, keep_default_na=False) sheet = data['方药'] for k in range(row_num): cell1_data = sheet.iloc[k] # 获取单元格的值 cell1_data = str(cell1_data) if cell1_data not in data2: print( k, cell1_data)
根据您提供的代码,我可以看到您正在处理`data`中的列和`data2`之间的比较。首先,您使用一个循环来遍历`data`的列名,并打印每个列名。然后,如果列名中包含字符串'方药',您将该列的数据添加到`result`列表中。
接下来,您使用`pd.read_excel()`函数从`file2`中读取数据,并将其存储在`data2`变量中。然后,您从名为'方药'的工作表中检索数据,并使用一个循环来遍历每一行。在循环内部,您获取每个单元格的值,并将其转换为字符串类型。然后,您检查该值是否不存在于`data2`中,如果是,则打印出行号和单元格的值。
最后注释掉了保存结果到Excel文件的代码行,如果您想要保存结果到Excel文件,只需取消注释即可。
请记住,根据您的具体需求,您可能需要进一步处理或调整代码。
如果您有任何其他问题,请随时提问!
#解析数据 detail_selector = parsel.Selector(detail_html) title = detail_selector.css('.b_crumb_cont *:nth-child(3)::text').get() comment = detail_selector.css('.title white::text').get() view_count = detail_selector.css('.view_count::text').get() date = detail_selector.css('#js_mainleft > div.b_foreword > ul > li.f_item.when > p > span.data::text').get() days = detail_selector.css('#js_mainleft > div.b_foreword > ul > li.f_item.howlong > p > span.data::text').get() money = detail_selector.css('#js_mainleft > div.b_foreword > ul > li.f_item.howmuch > p > span.data::text').get() character = detail_selector.css('#js_mainleft > div.b_foreword > ul > li.f_item.who > p > span.data::text').get() play_list = detail_selector.css('#js_mainleft > div.b_foreword > ul > li.f_item.how > p > span.data > span::text').getall() for play in play_list: print(play) print(title, comment, view_count, date, days, money, character, play_list, detail_url) time.sleep(random.randint(3,5))这段代码为什么只能输出最后一个网站的内容,应该怎么修改
这段代码只输出最后一个网站的内容是因为在循环中只是将每个play输出了,并没有将其他的信息输出。可以将每个网站的信息放在一个字典中,再将这些字典放在一个列表中,最后输出整个列表即可。修改后的代码如下:
```
detail_selector = parsel.Selector(detail_html)
title = detail_selector.css('.b_crumb_cont *:nth-child(3)::text').get()
comment = detail_selector.css('.title white::text').get()
view_count = detail_selector.css('.view_count::text').get()
date = detail_selector.css('#js_mainleft > div.b_foreword > ul > li.f_item.when > p > span.data::text').get()
days = detail_selector.css('#js_mainleft > div.b_foreword > ul > li.f_item.howlong > p > span.data::text').get()
money = detail_selector.css('#js_mainleft > div.b_foreword > ul > li.f_item.howmuch > p > span.data::text').get()
character = detail_selector.css('#js_mainleft > div.b_foreword > ul > li.f_item.who > p > span.data::text').get()
play_list = detail_selector.css('#js_mainleft > div.b_foreword > ul > li.f_item.how > p > span.data > span::text').getall()
result_list = []
for play in play_list:
result_dict = {}
result_dict['title'] = title
result_dict['comment'] = comment
result_dict['view_count'] = view_count
result_dict['date'] = date
result_dict['days'] = days
result_dict['money'] = money
result_dict['character'] = character
result_dict['play'] = play
result_dict['detail_url'] = detail_url
result_list.append(result_dict)
print(result_dict)
time.sleep(random.randint(3,5))
```
这样就能够输出每个网站的所有信息了。
阅读全文