我有一个包含 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", "")
