熊猫:严格替换值

时间:2018-05-20 20:53:07

标签: pandas

在我的数据中,有一堆行,其中包含我想要替换的字符串格式" - "的奇怪值。

当我在jupyter中运行以下代码时:

df['Block Hours'][df['Block Hours'] == " -   "].count()

我得到59行的输出,我期待。

然而,当我尝试做以下事情时:

df['Block Hours'].str.replace(" -   ", "0.0").count()

我收到超过40,000行不正确。

关于最新版本的pandas,我也尝试制作regex=False,但结果是一样的。

df['Block Hours'].str.replace(" -   ", "0.0", regex=False).count()

更新

对于其他来这里遇到类似问题的人。基本上,我的数据类型是Object而不是字符串。我推测所有数据类型都是' O'基本上是字符串,这是不正确的。以下代码对我有用:

df['Block Hours'] = df['Block Hours'].astype(str).str.replace(" -   ", "0.0")

2 个答案:

答案 0 :(得分:1)

df['Block Hours'].str.replace(" - ", "0.0")再次为您提供整列,而不仅仅是替换了字符串的列,因此它会与您期望的不同。更换后尝试对列进行过滤?

答案 1 :(得分:0)

试试这个:

df['Block Hours'].replace(" -   ", "0.0", regex=True).count()