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

Python中从DataFrame取值命名CSV文件如何去除索引与表头

问题原因

frcl.iloc[[i]]传入列表形式的行索引[i],返回的是仅含单行数据的DataFrame对象。对DataFrame直接做str()转换时,会输出带行索引、列表头的表格格式化内容,这就是文件名里多出索引、表头字符的根本原因。

解决方案

要获取纯单元格标量值,不要选择整行/整列的DataFrame或Series对象,直接用pandas提供的标量取值方法即可:

  • 按位置取值(性能最优,适合已知列位置的场景):用iat传入行号、列号,Names是第一列时列号为0
  • 按列名+行索引取值(可读性最好):用at传入行索引、列名Names
  • 也可以用iloc/loc同时指定行和列的位置/名称,直接返回标量值

修正后的代码示例:

# 写法1:按位置快速取标量,i为目标行的序号
filename = frcl.iat[i, 0]
# 写法2:按列名取值,代码可读性更高
# filename = frcl.at[i, 'Names']
# 写法3:先取Names列的Series,再按位置取值
# filename = frcl['Names'].iloc[i]

file = open(f'{filename}.csv', 'w')

如果需要批量遍历所有名称生成对应CSV,可以直接遍历Names列的Series,不需要手动维护索引i:

for filename in frcl['Names']:
    with open(f'{filename}.csv', 'w') as f:
        # 在此处编写CSV内容写入逻辑
        pass

注意:不要用iloc[[i]](双括号)的写法选行,即使用单括号iloc[i]只传行参数,返回的也是对应行的Series对象,直接转字符串仍会带索引信息,必须同时指定行、列两个维度才能拿到纯单元格值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 21:33:24