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

如何用np.savetxt的fmt参数同时指定列类型与制表符分隔?

解决np.savetxt指定多格式与制表符分隔的问题

要同时通过fmt参数指定列数据类型和制表符分隔,只需将制表符(用转义字符\t表示)直接嵌入到格式字符串中,同时注意数据的正确转换,具体操作如下:

核心解决思路

  • 多格式字符串模式下delimiter参数会被忽略,必须把制表符\t直接写在fmt的各格式符之间
  • 传入np.savetxt的数据建议转为numpy数组(如df.values),避免DataFrame的索引/列名干扰格式输出
  • 格式符需与列数据类型严格匹配:字符串用%s,整数用%d

修正后的示例代码

import numpy as np
import pandas as pd

# 构造样本数据框
df = pd.DataFrame([
    ["DTL", "3E046ZM/A", "190198848376", 0],
    ["DTL", "3E047ZM/A", "190198848406", 0],
    ["DTL", "3E309ZM/A", "190198937339", 0]
], columns=["col1", "col2", "col3", "col4"])

# 格式字符串:每个类型符间用\t分隔
fmt = '%s\t%s\t%s\t%d'
# 传入DataFrame的numpy数组形式,执行保存
np.savetxt("test.txt", df.values, fmt=fmt)

额外注意事项

  • 如果第三列(如示例中的190198848376)是数值类型但需要保存为字符串格式,需先将该列转为字符串类型:df['col3'] = df['col3'].astype(str)
  • 不要直接在代码中输入制表符(按Tab键),而是用\t转义字符,避免代码排版或解析时出现歧义

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 18:11:04