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

如何在Pandas中获取多值?拆分文件名遇KeyError的解决方法

解决文件名拆分时的KeyError问题

嘿,这个问题我之前也碰到过!咱们来一步步捋清楚:

你遇到的KeyError: "['name' 'type'] not in index",核心原因是你用str.split('.')返回的不是能直接拆分成两列的DataFrame——默认情况下这个方法返回的是一个包含列表的Series,没法直接赋值给新的列名。

正确的处理方法有两种,按需选就行:

方法1:给split加上expand=True和n=1参数

expand=True会让split返回一个多列的DataFrame,而n=1限制只按第一个点分割(避免文件名里有多个点时把名称拆碎),代码如下:

df[['name', 'type']] = df['full_name'].str.split('.', n=1, expand=True)

用你的测试数据跑的话,会生成正确的name列(ocean、mountain...)和type列(jpg、png...)。

方法2:用正则表达式提取(更稳妥)

如果担心文件名里有多个点(比如report.v2.pdf这种),用str.extract匹配最后一个点前后的内容更靠谱:

df[['name', 'type']] = df['full_name'].str.extract(r'^(.*)\.(.*)$', expand=True)

这个正则会把最后一个点前面的所有内容作为name,后面的作为type,完美处理复杂文件名的情况。

验证一下结果

处理后你的DataFrame会变成这样:

full_namenametype
ocean.jpgoceanjpg
mountain.pngmountainpng
forest.gifforestgif
river.mp4rivermp4
animal.avianimalavi
girl.pdfgirlpdf

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:35:24