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

如何处理IMDB数据集geners列的类JSON格式数据并提取可用字段?

提取IMDB数据集genres列中的name字段到新列

针对你遇到的genres列是类JSON格式的情况,用Python的pandas结合ast模块就能轻松处理,分两种场景给出解决方案:

场景1:genres列已经是Python列表/字典对象

如果你的数据集读入后,genres列本身就是Python的列表(每个元素是包含id和name的字典),直接用apply遍历提取name字段即可:

import pandas as pd

# 假设你的数据集存储在df变量中
df['genre_names'] = df['genres'].apply(lambda x: ', '.join([item['name'] for item in x]))

如果只需要提取第一个分类的name,可以改成:

df['first_genre'] = df['genres'].apply(lambda x: x[0]['name'] if x else None)

(加if x else None是为了处理空列表的情况,避免报错)

场景2:genres列是字符串格式的类JSON

如果genres列存储的是字符串(比如"[{'id': 35, 'name': 'Comedy'}]"这种形式),需要先把字符串转换成Python对象,这里推荐用ast.literal_eval(比eval安全,不会执行恶意代码):

import pandas as pd
import ast

# 先将字符串转成Python列表
df['genres'] = df['genres'].apply(ast.literal_eval)
# 再提取name字段到新列
df['genre_names'] = df['genres'].apply(lambda x: ', '.join([item['name'] for item in x]))

效果示例

处理前的genres列:

[{'id': 35, 'name': 'Comedy'}]
[{'id': 18, 'name': 'Drama'}, {'id': 28, 'name': 'Action'}]

处理后的genre_names列:

Comedy
Drama, Action

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 01:57:05