熊猫:严格替换值

问题描述 投票:0回答:2

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

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

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

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

但是,当我尝试执行以下操作时:

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

我得到超过40,000行是不正确的。

我正在使用最新版本的熊猫,并试图制作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")
pandas
2个回答
1
投票

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


0
投票

试试这个 :

df['Block Hours'].replace(" -   ", "0.0", regex=True).count()
© www.soinside.com 2019 - 2024. All rights reserved.