np.以TAB分隔的TXT文件



我有一个需要txt文件的数据框架。所以我用np.savetxt方法。但是,dataframe由四列组成,分别是string、string、string和integer。

np.savetxtfmtdelimiter参数。在官方文件中,multi-format string, e.g. ‘Iteration %d – %10.5f’, in which case delimiter is ignored

我如何使用fmt来指定列的数据类型和制表符分隔符?


fmt = ('%s %s %s %d')
np.savetxt("test.txt", df, fmt=fmt)

样本数据:

DTL 3E046ZM/A 190198848376 0
DTL 3E047ZM/A 190198848406 0
DTL 3E309ZM/A 190198937339 0

我试了('%s t %s t %s t %d'),但它不起作用。

正如numpy.savetxt文档告诉你的,你可以提供格式序列例如strlist作为fmt,考虑以下简单的例子

import numpy as np
import pandas as pd
df = pd.DataFrame([[1,2,3,"Hello"],[4,5,6,"World"]])
fmt = ["%d","%d","%d","%s"]
np.savetxt("test.tsv", df, fmt=fmt, delimiter="t")

用以下内容创建test.tsv

1   2   3   Hello
4   5   6   World

您说您使用的是数据框架,所以涉及到pandas,对吗?

为什么不直接使用呢?:

df.to_csv('your_file.txt', header=None, index=None, sep='t', mode='a')

这将根据数据框中列的数据类型格式化输出。

最新更新