目标是刮掉pokemonDB,创建一个Pokemon数据的DataFrame; (数字,名称,主要类型和次要类型),将这两种类型分成各自的行,然后将其导出为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...
我希望我要完成的工作有意义。
答案 0 :(得分:0)
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')