[英]Web scraping, reading data frames, and exporting to csv
目标是抓取 pokemonDB,创建一个 Pokemon 数据的 DataFrame; (Number、Name、Primary type、secondary type),将两种类型分到各自的行中,导出为CSV文件。
我一直在访问“dex”数据框,特别是列的内容。 我是否正确使用了“.loc”?
然后将两种类型分开到每一列。 我知道我必须使用空格“”作为分隔符,但不确定如何使用。 我是熊猫的新手。
这就是我所拥有的:
import pandas as pd
import requests
page = requests.get("https://pokemondb.net/pokedex/all")
dex = pd.read_html(page.text, attrs = {'id': 'pokedex'}, index_col = '#')
column_label_list = (list(dex[0].columns))
NationalNo = column_label_list[0];
Name = column_label_list[1];
Type = column_label_list[2];
numbers_list = dex.loc[ "#"]
names_list = dex.loc[ "Name"]
types1_list = dex.loc[ "Type"]
pokemon_list = pd.DataFrame(
{
NationalNo: numbers_list,
Name: names_list,
Type: types1_list,
#'Type2': types2_list,
})
print(pokemon_list)
#pokemon_list.to_csv('output.csv',encoding='utf-8-sig')
结果应如下所示:
output.csv
# | Name | Type1 | Type2 |
__|_________|_______|_______|
0 |Bulbasaur|Grass |Poison |
__|_________|_______|_______|
.
.
.
etc...
我希望我想要完成的事情是有道理的。
dex
是该 HTML 上存在的所有表的数组,因为只有一个表,选择第一个表,然后您不需要再将它们映射到数据框,直接导出它,因为它已经是一个数据框。 请考虑使用以下代码:
import pandas as pd
import requests
page = requests.get("https://pokemondb.net/pokedex/all")
dex = pd.read_html(page.text, attrs = {'id': 'pokedex'}, index_col = '#')
dex[0].to_csv("output.csv", encoding='utf-8')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.