如何将网页解析的文本型参考价格转换为整数?
解决字符串转整数问题
你遇到的问题根源在于:直接对带小数的字符串调用int()会报错,且astype(int)是Pandas Series/DataFrame专属方法,不能直接用在普通字符串变量上。下面提供两种可行的解决方式:
方式一:解析阶段直接处理
在循环提取数据时就完成类型转换,避免后续麻烦:
###### Parsing tbody = table.tbody reference_price_list = [] # 先初始化空列表 for i, tr in enumerate(tbody.find_all('tr')): reference_price = tr.find('td').text.strip() # 先去除文本前后的空格 # 方法1:先转浮点数再转整数(自动截断小数部分) price_int = int(float(reference_price)) # 方法2:按小数点分割取前半段(适合确定字符串格式规范的场景) # price_int = int(reference_price.split('.')[0]) reference_price_list.append(price_int) ###### Convert to dataframe df = pd.DataFrame(data=reference_price_list, columns=['price'])
方式二:生成DataFrame后统一处理
如果已经生成了包含字符串价格的DataFrame,可以批量转换:
# 假设df已生成,'price'列为字符串类型 df['price'] = df['price'].astype(float).astype(int) # 或者用apply自定义处理逻辑 # df['price'] = df['price'].apply(lambda x: int(float(x)))
额外提示:如果解析到的字符串包含非数字内容(比如货币符号、千分位逗号),需要先清理,例如:reference_price = tr.find('td').text.strip().replace('¥', '').replace(',', '')
内容的提问来源于stack exchange,提问作者user21084142
相关产品推荐
相关产品推荐

