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

如何不使用explode拆分列?如何拆分指定电影数据集(explode已弃用)

嘿,我来帮你搞定这两个问题,尤其是你提到的电影数据集格式转换需求,而且完全不用已弃用的explode方法:

1. 不使用explode方法拆分一列数据

如果要把包含分隔符的列拆分成多行,又不能用explode,核心思路是先把字符串拆分成列表,再把列表展开成独立行,同时保留原行的其他字段。在Pandas里,常用的方案是结合str.split、join和melt,或者用apply(pd.Series)配合stack()来实现。

2. 电影数据集的格式转换实现

先明确你的需求:

原始格式:

电影标题 | 电影类型
Toy Story | Animation|Children|Comedy

目标格式:

电影标题 | 电影类型
Toy Story | Animation
Toy Story | Children
Toy Story | Comedy

下面是用Pandas实现的代码,完全避开explode:

import pandas as pd

# 构建示例数据集(实际使用时替换成你的数据加载代码,比如pd.read_csv)
df = pd.DataFrame({
    '电影标题': ['Toy Story'],
    '电影类型': ['Animation|Children|Comedy']
})

# 第一步:拆分电影类型为多列,并保留原电影标题列
split_genres = df['电影类型'].str.split('|', expand=True)
split_genres = split_genres.join(df['电影标题'])

# 第二步:将多列的类型转成多行,和电影标题一一对应
transformed_df = split_genres.melt(
    id_vars='电影标题',  # 保留电影标题作为标识,不参与转换
    value_name='电影类型'  # 指定转换后的类型列名
).dropna(subset=['电影类型'])  # 移除拆分后可能出现的空值行

# 第三步:清理多余列并重置索引
transformed_df = transformed_df.drop(columns='variable').reset_index(drop=True)

# 查看结果
print(transformed_df)

代码逻辑说明:

  • str.split('|', expand=True):把多类型的字符串按|拆分成独立的列,每个列对应一个电影类型。
  • join(df['电影标题']):把原行的电影标题和拆分后的所有类型列绑定,确保每个类型都能关联到对应的电影。
  • melt():将拆分出来的多列类型“融化”成一列,自动重复对应的电影标题,实现一对多的行展开。
  • dropna()和后续的清理操作:确保结果里没有无效的空值行,让输出格式更整洁。

这个方法也适用于更大的数据集,只要把示例里的DataFrame替换成你的实际数据加载逻辑就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:15:12