Python 熊猫从维基百科中读取html作为数据帧,第二个表有Nan
我正试图将维基百科页面作为数据框架进行阅读Python 熊猫从维基百科中读取html作为数据帧,第二个表有Nan,python,pandas,Python,Pandas,我正试图将维基百科页面作为数据框架进行阅读 pd.read_html('https://en.wikipedia.org/wiki/List_of_countries_by_GDP_(nominal)') 它是有效的,我通过不同的数据框列出了显示GDP表数据的数据框,第一个表看起来不错,所有的数据都已经准备好了 但第二个表在GDP列中都有Nan 这是出乎意料的,但不是我找不到使用其他工具或手动获取它的方法,但仍然可能有办法调整pandas来修复此问题,或者推动未来版本来修复此问题,因此我决
pd.read_html('https://en.wikipedia.org/wiki/List_of_countries_by_GDP_(nominal)')
它是有效的,我通过不同的数据框列出了显示GDP表数据的数据框,第一个表看起来不错,所有的数据都已经准备好了
但第二个表在GDP列中都有Nan
这是出乎意料的,但不是我找不到使用其他工具或手动获取它的方法,但仍然可能有办法调整pandas来修复此问题,或者推动未来版本来修复此问题,因此我决定发布此问题。我使用的是python 3.6和pandas 0.23.0,并通过使用
flavor='bs4'
对于pd.read\u html
。这导致它使用html5lib而不是默认的lxml,因此您必须安装hmtl5lib(我有1.0.1版)
相关版本:
html5lib 1.0.1 py36h2f9c1c0_0
pandas 0.23.0 py36h637b7d7_0
python 3.6.6 hc3d631a_0
完整环境:
# packages in environment at /home/user/miniconda3/envs/so_question:
#
# Name Version Build Channel
backcall 0.1.0 py36_0
beautifulsoup4 4.6.0 py36h49b8c8c_1 anaconda
blas 1.0 mkl
ca-certificates 2018.03.07 0
certifi 2018.4.16 py36_0
decorator 4.3.0 py36_0
html5lib 1.0.1 py36h2f9c1c0_0
intel-openmp 2018.0.3 0
ipython 6.4.0 py36_0
ipython_genutils 0.2.0 py36hb52b0d5_0
jedi 0.12.0 py36_1
libedit 3.1.20170329 h6b74fdf_2
libffi 3.2.1 hd88cf55_4
libgcc-ng 7.2.0 hdf63c60_3
libgfortran-ng 7.2.0 hdf63c60_3
libstdcxx-ng 7.2.0 hdf63c60_3
mkl 2018.0.3 1
mkl_fft 1.0.1 py36h3010b51_0
mkl_random 1.0.1 py36h629b387_0
ncurses 6.1 hf484d3e_0
numpy 1.14.5 py36hcd700cb_3
numpy-base 1.14.5 py36hdbf6ddf_3
openssl 1.0.2o h20670df_0
pandas 0.23.0 py36h637b7d7_0
parso 0.2.1 py36_0
pexpect 4.6.0 py36_0
pickleshare 0.7.4 py36h63277f8_0
pip 10.0.1 py36_0
prompt_toolkit 1.0.15 py36h17d85b1_0
ptyprocess 0.6.0 py36_0
pygments 2.2.0 py36h0d3125c_0
python 3.6.6 hc3d631a_0
python-dateutil 2.7.3 py36_0
pytz 2018.5 py36_0
readline 7.0 ha6073c6_4
setuptools 39.2.0 py36_0
simplegeneric 0.8.1 py36_2
six 1.11.0 py36h372c433_1
sqlite 3.24.0 h84994c4_0
tk 8.6.7 hc745277_3
traitlets 4.3.2 py36h674d592_0
wcwidth 0.1.7 py36hdf4376a_0
webencodings 0.5.1 py36h800622e_1
wheel 0.31.1 py36_0
xz 5.2.4 h14c3975_4
zlib 1.2.11 ha838bed_2
我正在使用Python3.6和pandas 0.23.0,并通过使用
flavor='bs4'
来实现它。这导致它使用html5lib而不是默认的lxml,因此您必须安装hmtl5lib(我有1.0.1版)
相关版本:
html5lib 1.0.1 py36h2f9c1c0_0
pandas 0.23.0 py36h637b7d7_0
python 3.6.6 hc3d631a_0
完整环境:
# packages in environment at /home/user/miniconda3/envs/so_question:
#
# Name Version Build Channel
backcall 0.1.0 py36_0
beautifulsoup4 4.6.0 py36h49b8c8c_1 anaconda
blas 1.0 mkl
ca-certificates 2018.03.07 0
certifi 2018.4.16 py36_0
decorator 4.3.0 py36_0
html5lib 1.0.1 py36h2f9c1c0_0
intel-openmp 2018.0.3 0
ipython 6.4.0 py36_0
ipython_genutils 0.2.0 py36hb52b0d5_0
jedi 0.12.0 py36_1
libedit 3.1.20170329 h6b74fdf_2
libffi 3.2.1 hd88cf55_4
libgcc-ng 7.2.0 hdf63c60_3
libgfortran-ng 7.2.0 hdf63c60_3
libstdcxx-ng 7.2.0 hdf63c60_3
mkl 2018.0.3 1
mkl_fft 1.0.1 py36h3010b51_0
mkl_random 1.0.1 py36h629b387_0
ncurses 6.1 hf484d3e_0
numpy 1.14.5 py36hcd700cb_3
numpy-base 1.14.5 py36hdbf6ddf_3
openssl 1.0.2o h20670df_0
pandas 0.23.0 py36h637b7d7_0
parso 0.2.1 py36_0
pexpect 4.6.0 py36_0
pickleshare 0.7.4 py36h63277f8_0
pip 10.0.1 py36_0
prompt_toolkit 1.0.15 py36h17d85b1_0
ptyprocess 0.6.0 py36_0
pygments 2.2.0 py36h0d3125c_0
python 3.6.6 hc3d631a_0
python-dateutil 2.7.3 py36_0
pytz 2018.5 py36_0
readline 7.0 ha6073c6_4
setuptools 39.2.0 py36_0
simplegeneric 0.8.1 py36_2
six 1.11.0 py36h372c433_1
sqlite 3.24.0 h84994c4_0
tk 8.6.7 hc745277_3
traitlets 4.3.2 py36h674d592_0
wcwidth 0.1.7 py36hdf4376a_0
webencodings 0.5.1 py36h800622e_1
wheel 0.31.1 py36_0
xz 5.2.4 h14c3975_4
zlib 1.2.11 ha838bed_2
无法复制该问题。你的熊猫版本是什么?当我尝试它时,我在第2列中得到了带有unicode字符的值,但不是NaN。无法复制该问题。你的熊猫版本是什么?当我尝试它时,我得到了第2列中带有unicode字符的值,但不是NaN。很高兴它有帮助!很高兴它有帮助!