pandas:如何读取html并将所有字段转换为字符串

r3i60tvu  于 2023-04-10  发布在  其他
关注(0)|答案(3)|浏览(174)

如果导入this HTML file

pd_df = pd.read_html('./output.html')
pd_df[0]

最后一个字段变成了一个浮点数,但它是一个字符串(例如从052695269.0)。我知道我可以应用pd_df = pd.read_html('./output.html',converters={'CAP': str}),但我的问题是:有没有一种方法可以使用read_html对所有字段应用全局字符串转换?
因为这是一个示例文件,所以这是一个简单的示例,但通常我有很多字段,全局选项会很好。

k75qkfdt

k75qkfdt1#

(编辑)
你可以做的是读取两次。一次是获取列名,另一次是使用转换器确保所有列都被读取为str

url = "https://gist.githubusercontent.com/aborruso/599153968878f452bd3c68f3de0f29c4/raw/1156d224a4290393409ceef285c238c09b6bd08e/input.html"
df = pd.read_html(url)[0]

converters = {c:lambda x: str(x) for c in df.columns}

df = pd.read_html(url, converters=converters)[0]
print(df)
# results in: 

  Beneficiario       Comune    CAP Provincia Importo
0  RNDFNC60E16  RIPACANDIDA  85020   POTENZA   09269
1  RNDFNC60E16          NaN    NaN   POTENZA   05269

print(df.dtypes) 
# results in : 
Beneficiario    object
Comune          object
CAP             object
Provincia       object
Importo         object
dtype: object
c7rzv4ha

c7rzv4ha2#

如果我们知道列数:

df = pd.read_html("output.html",converters ={x:str for x in range(5)})[0]
cmssoen2

cmssoen23#

我也有同样的要求,但在网上找不到一个简单的解决方案。测试了几个解决方案,我找到了一个很简单的。下面列出未来谁有同样的要求。
pd.read_html(url,parse_dates=False,thousands=";“,decimal=";“)
千位数和小数可以是网页中不存在的任何东西。结果是每一列都是字符串格式。

相关问题