我有一个需要txt文件的数据框架。所以我用np.savetxt
方法。但是,dataframe由四列组成,分别是string、string、string和integer。
np.savetxt
取fmt
和delimiter
参数。在官方文件中,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
文档告诉你的,你可以提供格式序列例如str
的list
作为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')
这将根据数据框中列的数据类型格式化输出。