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

Python中如何基于字符串拆分列、清洗数据并进行计算?

Pandas 列拆分计算解决方案

你提供的原始数据截图如下:
数据截图

完整实现代码

import pandas as pd

# 提取A、B列,自动匹配原始列中的A、B数值(兼容整数、小数,支持等号前后有空格的情况)
df[['A', 'B']] = df['Given Data'].str.extract(r'A\s*=\s*(\d+\.?\d*).*B\s*=\s*(\d+\.?\d*)').astype(float)

# 按公式计算C列
df['C'] = df['A'] / df['B']

# 删除原始的Given Data列
df.drop(columns=['Given Data'], inplace=True)

补充说明

  • 如果你的原始Given Data列是数值-数值的分隔格式,只需将str.extract中的正则替换为r'(\d+\.?\d*)-(\d+\.?\d*)'即可适配
  • 遇到A/B为非数字的场景,可在astype(float)中添加errors='coerce'参数,自动将非法值转为NaN避免程序报错
  • 如需处理除数为0的异常,可将C列计算逻辑替换为df['C'] = df['A'].div(df['B'], fill_value=0),自定义异常场景的填充值

可运行测试示例

你可以直接运行下方代码验证效果:

import pandas as pd

# 模拟测试数据
test_df = pd.DataFrame({
    "Given Data": [
        "测试内容 A=10 B=2 其他内容",
        "测试内容 A=15 B=3 其他内容",
        "测试内容 A=7.5 B=2.5 其他内容"
    ]
})

# 执行处理逻辑
test_df[['A', 'B']] = test_df['Given Data'].str.extract(r'A\s*=\s*(\d+\.?\d*).*B\s*=\s*(\d+\.?\d*)').astype(float)
test_df['C'] = test_df['A'] / test_df['B']
test_df.drop(columns=['Given Data'], inplace=True)

# 输出结果
print(test_df)

运行输出结果:

A    B    C
0  10.0  2.0  5.0
1  15.0  3.0  5.0
2   7.5  2.5  3.0

内容的提问来源于stack exchange,提问作者J. Roybomb

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:06:04