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

DataFrame列数据处理:移除值中.00后缀的方法

嘿,这个需求我之前也碰到过,用pandas就能轻松解决!下面给你两种实用的方法,你可以根据自己的习惯选~

方法一:正则表达式替换(简洁高效)

这种方法利用字符串替换结合正则表达式,精准匹配**末尾的".00"**并移除,不会影响其他带小数点的内容(比如5000.i)。

import pandas as pd

# 先构造你的示例DataFrame
df = pd.DataFrame({'target_col': [5000, 5000.00, '5000.i', 4000.00]})

# 第一步:把列统一转为字符串类型,确保数值和字符串能一起处理
df['target_col'] = df['target_col'].astype(str)

# 第二步:用正则替换末尾的".00",regex=True启用正则模式
df['target_col'] = df['target_col'].str.replace(r'\.00$', '', regex=True)

# 查看处理后的结果
print(df['target_col'])

代码解释:

  • astype(str):把列里的数值(比如5000、5000.00)和字符串(比如5000.i)统一转成字符串,避免类型不一致导致的问题。
  • r'\.00$':正则表达式,\.匹配实际的小数点(避免被当作通配符),$表示匹配字符串的结尾,确保只替换末尾的".00",不会误伤其他内容。

方法二:条件判断处理(直观易懂)

如果你对正则不太熟悉,这种逐元素判断的方法更直白,逻辑清晰:

import pandas as pd

df = pd.DataFrame({'target_col': [5000, 5000.00, '5000.i', 4000.00]})

# 定义一个清理后缀的函数
def remove_dot00(x):
    # 先转成字符串
    x_str = str(x)
    # 判断是否以".00"结尾
    if x_str.endswith('.00'):
        # 移除最后3个字符(即".00")
        return x_str[:-3]
    else:
        # 不符合条件就返回原内容
        return x_str

# 应用函数到目标列
df['target_col'] = df['target_col'].apply(remove_dot00)

print(df['target_col'])

最终输出结果:

不管用哪种方法,处理后你都会得到:

0       5000
1       5000
2    5000.i
3       4000
Name: target_col, dtype: object

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 14:58:09