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

oalqel3c  于 2023-04-19  发布在  其他
关注(0)|答案(1)|浏览(164)

验证码:

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

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

Failed: Can only use .str accessor with string values!

是否有任何方法可以处理列值为空或null的情况?如果为空或null,则忽略该行

knpiaxh1

knpiaxh11#

默认情况下,空序列dtype将为float64
您可以使用astype执行以下解决方案:

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

测试代码:

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

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

# doesn't work
df['Rep'] = df['Rep'].str.replace('\\n', ' ')

我不知道你用的是哪个版本的pandas,他们会把默认的dtype改成object
编辑:仍然不能与object一起工作,只是使用最新版本的pandas(2.0.0)进行了测试。
Source

相关问题