You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python将pandas DataFrame中的[]替换为NaN?

将DataFrame中的空列表/字符串'[]'替换为NaN

下面分两种常见场景给出解决方案:

1. 处理字符串形式的'[]'

如果你的species列中存储的是字符串'[]'(对应测试代码的场景),直接用replace()方法即可快速替换:

import pandas as pd
import numpy as np

# 测试数据
df = pd.DataFrame({
    'molecule': ['a','b','c','d','e'],
    'species' : ['horse','cat','[]','frog','lion']})

# 替换字符串'[]'为NaN
df['species'] = df['species'].replace('[]', np.nan)

2. 处理真正的空列表对象[]

如果species列中的空值是Python列表对象[](对应你最初展示的DataFrame场景),可以用apply()结合条件判断替换:

import pandas as pd
import numpy as np

# 测试数据
df = pd.DataFrame({
    'molecule': ['a','b','c','d','e'],
    'species' : ['dog', 'horse', [], 'pig', []]})

# 替换空列表为NaN
df['species'] = df['species'].apply(lambda x: np.nan if x == [] else x)

通用兼容方案

如果不确定数据是字符串还是列表类型,可以合并两种判断逻辑:

df['species'] = df['species'].apply(lambda x: np.nan if (x == [] or x == '[]') else x)

内容的提问来源于stack exchange,提问作者startedtocode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 21:31:01