pandas如何检查列是否不为空然后在一行代码中应用.str.replace

Wil*_*iam 5 python dataframe pandas

代码:

df['Rep'] = df['Rep'].str.replace('\\n', ' ')
Run Code Online (Sandbox Code Playgroud)

问题:如果 df['Rep'] 为空或 null ,则会出现错误:

Failed: Can only use .str accessor with string values!
Run Code Online (Sandbox Code Playgroud)

无论如何可以处理列值为空或为空时的情况吗?如果为空或 null ,则忽略该行

Bru*_*llo 3

默认情况下,空系列dtype将为float64.

您可以使用以下方法解决问题astype

df['Rep'] = df['Rep'].astype('str').str.replace('\\n', ' ')
Run Code Online (Sandbox Code Playgroud)

测试代码:

df = pd.DataFrame({'Rep': []})

# works
df['Rep'] = df['Rep'].astype('str').str.replace('\\n', ' ')

# doesn't work
df['Rep'] = df['Rep'].str.replace('\\n', ' ')
Run Code Online (Sandbox Code Playgroud)

我不知道你使用的是哪个版本的pandas,他们会更改为object默认版本dtype

编辑:仍然无法使用object,只是使用最新版本的pandas(2.0.0)进行了测试。

来源