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

如何提取无后缀文件名并解决pandas中纯数字文件名出现.0的问题

问题原因

你遇到的.0后缀问题是两个代码逻辑错误共同导致的:

  • 没有提前初始化xmlfilename列,逐行赋值时pandas会自动将纯数字的文件名识别为浮点型
  • 把整列转字符串的astype(str)操作放在循环体内,每处理一行就对全列做一次类型转换,不仅效率极低,还会把浮点型的数字直接转成带.0的字符串

解决方法

方案1(推荐):用向量化操作替代循环

pandas的向量化操作会自动统一处理类型,不会出现自动转浮点的问题,同时运行效率远高于逐行遍历:

from pathlib import Path
dffinalselection['xmlfilename'] = dffinalselection['relfilepath'].apply(lambda x: Path(x).stem).astype(str)

方案2:修复原有循环逻辑

如果必须用循环实现,提前初始化xmlfilename列为字符串类型,同时把类型转换操作移出循环:

from pathlib import Path
# 提前初始化为字符串类型空列
dffinalselection['xmlfilename'] = ''
for i, row in dffinalselection.iterrows():
    # 用loc赋值避免链式索引警告
    dffinalselection.loc[i, 'xmlfilename'] = Path(row['relfilepath']).stem

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:36:04