python - 数据框中字典列的列表

标签 python pandas dataframe

我的数据框中的一列是字典列表,类似于这样:

如何过滤标签列中 id 键具有特定值的行?例如包含 {"id": 18}

的行

最佳答案

由于您的 tag 列是列表值的,如果您使用的是 pandas 0.25+,则可以使用 explode:

# toy data
df = pd.DataFrame({'type':['df','fg','ff'],
                   'tag': [[{"id" : 12} ,{"id" : 13}], 
                           [{"id" : 12}],
                           [{'id':10}]]
                  })

# make each row contains exactly one dict: {id: val}
s = df['tag'].explode()

# the indexes of interested rows
idx = s.index[pd.DataFrame(s.to_list())['id'].values==12]

# output
df.loc[idx]

输出:

    type    tag
0   df      [{'id': 12}, {'id': 13}]
1   fg      [{'id': 12}]

关于python - 数据框中字典列的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58438132/

相关文章:

python - 如何在 tkinter ENTRY 中突出显示预先输入的文本,以便用户可以直接键入(无需选择、删除)

Python BeautifulSoup - 忽略子标签和 ID

Python计数和概率

python - 如何获取数据框中所有列的数据类型?

python - 使用 pandas,计算 Cramér 的系数矩阵

r - 密度图矩阵,每个图覆盖两个分布

python - 如何将字符串从 df.to_string() 转换回 DataFrame

python - 使用 Python 脚本按标本 ID 排序

python - MPI - 发送和接收矩阵列

python - 按对象将 pandas 组转换为多索引 Dataframe