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

如何使用Pandas实现DataFrame内分数按规则转小数并保留原有小数

实现代码
import pandas as pd

# 构造示例DataFrame,实际使用时替换为你自己的df读取逻辑即可
data = [
    ["123/100", "221/100", "103/50"],
    ["49/100", "333/100", "223/50"],
    ["153/100", "81/50", "229/100"],
    ["183/100", "47/25", "31/20"],
    ["2.23", "3.2", "3.04"],
    ["2.39", "3.61", "2.69"]
]
df = pd.DataFrame(data, columns=["1", "2", "3"])

# 定义值转换函数
def convert_value(x):
    x_str = str(x).strip()
    if "/" in x_str:
        # 拆分分数的分子分母计算后加1
        numerator, denominator = map(int, x_str.split("/"))
        return (numerator / denominator) + 1
    else:
        # 非分数直接转浮点保留原值
        return float(x_str)

# 全表批量应用转换规则
df = df.applymap(convert_value)

# 打印转换后结果
print(df)
逻辑说明
  • 自定义转换函数优先判断单元格内容是否包含分数分隔符/,识别为分数后拆分分子、分母做除法运算再加1
  • 原本为小数的内容直接转浮点型保留原始数值
  • 通过applymap对整个DataFrame所有单元格批量执行转换,不需要逐列单独处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:12:02