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

pandas使用str.split拆分DataFrame列仅返回首列如何解决?

pandas拆分Genres列仅返回第一列的修复方案

问题原因

你代码的问题出在拆分赋值的步骤:str.split()设置expand=True后会返回多列的DataFrame,你将这个多列结构直接赋值给单个列df1['Genres']时,pandas默认仅会取第一列赋值,因此只能拿到每个条目的首个分类。

修复代码

import pandas as pd

# pd.read_csv本身就返回DataFrame,无需额外套pd.DataFrame()
df1 = pd.read_csv('Dataset01.csv')

# 一次性清洗Genres列的多余符号
df1['Genres'] = df1['Genres'].str.strip('[]').str.replace("'", "", regex=False)

# 拆分列,同时去除每个分类前后的多余空格
genres_split = df1['Genres'].str.split(",", expand=True).apply(lambda x: x.str.strip(), axis=1)

# 固定为7列,不足的位置填充空值(符合你预期返回7列的需求)
genres_split = genres_split.reindex(columns=range(7), fill_value='')

# 给拆分后的列命名
genres_split.columns = [f'Genres_{i+1}' for i in range(7)]

# 把拆分后的列合并到原DataFrame,drop('Genres', axis=1)是删除原来的未拆分列,不需要可以去掉这部分
df1 = pd.concat([df1.drop('Genres', axis=1), genres_split], axis=1)

运行效果

处理完成后,df1会新增7个Genres分类列,分别存储每条数据的第1到第7个分类,没有对应分类的位置为空值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:36:05