Python 使用wikipedia表刮刀时的编码问题
我正试图将这些表从维基百科页面导入熊猫,但是,我面临着多个编码问题,不知道如何解决它们Python 使用wikipedia表刮刀时的编码问题,python,pandas,Python,Pandas,我正试图将这些表从维基百科页面导入熊猫,但是,我面临着多个编码问题,不知道如何解决它们 import wikipedia as wp import numpy as np import pandas as pd wiki_page = 'Climate_of_Italy' html = wp.page(wiki_page).html() def dataframe_cleaning(table_number=int): global html df = pd.read_htm
import wikipedia as wp
import numpy as np
import pandas as pd
wiki_page = 'Climate_of_Italy'
html = wp.page(wiki_page).html()
def dataframe_cleaning(table_number=int):
global html
df = pd.read_html(html, encoding='utf-8')[table_number]
df.drop(np.arange(5, len(df.index)), inplace=True)
df.columns = df.columns.droplevel()
find = '\((.*?)\)'
for i, column in enumerate(df.columns):
if i>0:
df[column] = df[column].replace(u'\u2212', '-')
df[column] = (df[column]
.str.findall(find)
.map(lambda x: np.round((float(x[0])-32)* (5/9), 2)))
return df
florence_df = dataframe_cleaning(6)
florence_df
我当前遇到的错误是:
ValueError:无法将字符串转换为浮点:'−9.8'
我理解'−' != '-'但是,无论我如何尝试,我都无法替换以下符号。我试图将Pandas直接用于pd.read_html()
,但后来遇到了类似的问题
我知道这可能是一个简单的问题,但我不知道如何解决它
提前谢谢你
更新:
问题已经得到了回答,但@baduker还指出,替换可以直接在html上完成:
import wikipedia as wp
import numpy as np
import pandas as pd
wiki_page = 'Climate_of_Italy'
html = wp.page(wiki_page).html().replace(u'\u2212', '-')
不知道以下选项可用。相信这会更好,因为它可以一次执行。df[column]。替换(u'\u2212','-'))
仅当整个值正好为u'\u2212'
时,此选项才会替换。您想使用df[column].str.replace来代替。最伟大的掌心时刻。非常感谢你!我是如此专注于一个更大的问题,以至于我完全忘记了一些小事情哈哈