Skip to main content
 首页 » 编程设计

python之当用 "10.0"替换 ".0"时,""被完全删除

2025年05月04日9java哥

我有一个包含 float 字符串的数据框列,我想在适用的情况下删除尾随的“.0”。但是,在执行 df["numbers"].str.replace(".0", "") 时,字符串“10.0”被完全删除,而不是被替换为“10”。这似乎只影响数字 10、100 等。

MWE:

import pandas as pd 
df = pd.DataFrame({"numbers": ["1.0", "10.0", "10.1", "100.0", "100.1", "99.0"]}) 
print df 
#   numbers 
# 0     1.0 
# 1    10.0 
# 2    10.1 
# 3   100.0 
# 4   100.1 
# 5    99.0 
print df.numbers.str.replace(".0", "") 
# 0      1 
# 1 
# 2     .1 
# 3      0 
# 4    0.1 
# 5     99 

这是一个错误还是按预期工作?另请注意,“10.1”通过这种方法更改为“.1”,这很奇怪。

请您参考如下方法:

Dataframe.str.replace 采用正则表达式,因此 . 匹配任何字符。你要

df.numbers.str.replace("\.0", "")