You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Selenium爬取的Pandas DataFrame中C列的小数点为逗号?

解决Pandas DataFrame列中小数点替换为逗号的问题

问题原因分析

你之前尝试的两种方法失效的原因:

  • pd.to_numeric:仅负责将字符串转换为数值类型,不会修改数值的显示符号,因此无法替换小数点为逗号。
  • read_html(decimal=','):该参数用于指定页面中原本作为小数点的字符,如果原页面用.做小数点,设置decimal=','会让Pandas把.识别为千分分隔符直接忽略,导致962.5被解析成9625。

可行解决方案

方案1:直接修改DataFrame列的字符串格式(适合需要在DataFrame中保留带逗号的文本)

先将目标列转为字符串类型,再替换小数点为逗号:

# 假设目标列的列名为'C'
df1['C'] = df1['C'].astype(str).str.replace('.', ',', regex=False)

如果列中存在非数值内容,可以添加判断避免错误:

def replace_dot_with_comma(x):
    # 仅处理数值或可转为数值的字符串
    if isinstance(x, (int, float)) or (isinstance(x, str) and x.replace('.', '').isdigit()):
        return str(x).replace('.', ',')
    return x

df1['C'] = df1['C'].apply(replace_dot_with_comma)

方案2:保留数值类型,在Excel输出时设置格式(适合需要数值运算,仅Excel显示用逗号做小数点)

如果需要保留数值的计算能力,只需在导出Excel时通过格式设置让单元格显示逗号作为小数点,推荐用xlsxwriter引擎:

import pandas as pd

# 假设df1已完成数据提取
writer = pd.ExcelWriter('output.xlsx', engine='xlsxwriter')
df1.to_excel(writer, sheet_name='Sheet1', index=False)

# 创建带逗号小数点的格式
workbook = writer.book
comma_format = workbook.add_format({'num_format': '0,00'})  # 自定义格式,显示两位小数用逗号分隔

# 应用格式到C列(Excel中C列对应列号3)
worksheet = writer.sheets['Sheet1']
worksheet.set_column('C:C', None, comma_format)

writer.close()

结合Selenium的完整流程示例

from selenium import webdriver
import pandas as pd

# 初始化浏览器并加载页面
driver = webdriver.Chrome()
driver.get('你的目标网页URL')

# 获取页面中的table元素并转为DataFrame
table = driver.find_element('tag name', 'table')
dfs = pd.read_html(table.get_attribute('outerHTML'))
df1 = dfs[0]  # 取第一个表格(根据实际情况调整索引)

# 执行小数点替换(以方案1为例)
df1['C'] = df1['C'].astype(str).str.replace('.', ',', regex=False)

# 保存为Excel文件
df1.to_excel('result.xlsx', index=False)

# 关闭浏览器
driver.quit()

内容的提问来源于stack exchange,提问作者lineage_refugee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 05:33:09