"” 10.0"替换“ .0”时完全删除.与“”

  • 本文关键字:quot 删除 替换 python pandas
  • 更新时间 :
  • 英文 :


i有一个包含浮数的数据框列,我想在适用的情况下删除尾随的" .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", "")

需要 $才能进行 string s的匹配末端,而 susce .

print (df.numbers.str.replace(".0$", ""))
0        1
1       10
2     10.1
3      100
4    100.1
5       99
Name: numbers, dtype: object

最新更新