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

如何检查Pandas列中字符串格式字典是否包含指定整数键

Pandas处理字符串格式字典列,生成指定键存在标记列

问题说明

现有如下Pandas DataFrame,其中qualifier列存储的是字符串格式的字典。需要检查5、6、107是否作为键存在于该列的字典中,并生成包含set_piece列的新DataFrame,该列标记对应行的字典是否存在任一指定键。

输入DataFrame

playerqualifier
John"{120: 'left', 107: True}"
Felix"{1: 'box centre', 120: 5.6}"

实现步骤

  1. 解析字符串为字典:使用ast.literal_eval安全将字符串格式的字典转换为Python字典(避免eval的安全风险)
  2. 定义目标键集合:指定需要检查的键{5, 6, 107}
  3. 生成标记列:通过自定义函数结合apply,判断每行字典是否包含任一目标键,生成set_piece列

完整代码

import pandas as pd
import ast

# 构造输入DataFrame
df = pd.DataFrame({
    'player': ['John', 'Felix'],
    'qualifier': ["{120: 'left', 107: True}", "{1: 'box centre', 120: 5.6}"]
})

# 定义目标键集合
target_keys = {5, 6, 107}

# 解析字符串字典并判断是否存在目标键
def check_target_keys(qual_str):
    qual_dict = ast.literal_eval(qual_str)
    return any(key in qual_dict for key in target_keys)

df['set_piece'] = df['qualifier'].apply(check_target_keys)

# 查看结果
print(df)

目标输出DataFrame

playerqualifierset_piece
John"{120: 'left', 107: True}"True
Felix"{1: 'box centre', 120: 5.6}"False

内容的提问来源于stack exchange,提问作者Christian Rønsholt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 15:35:39