TypeError: Mismatch between array dtype and format specifier. How to save a dataframe with different value types as a txt file?

TypeError: Mismatch between array dtype and format specifier. How to save a dataframe with different value types as a txt file?

我有一个包含 10 列的数据框,每列包含不同类型的值: 整数、海峡、海峡、海峡、海峡、浮动、浮动、浮动、浮动、浮动、浮动

我想将我的 df 保存为 txt 文件。我使用此代码:

fmt = '%5f','%5s','%5s','%5f','%8.3f','%8.3f','%8.3f','%8.4f','%8.4f','%8.4f' np.savetxt(r'C:\Users\np.txt', df.values, fmt=fmt, delimiter="")

但是我得到这个错误:

Mismatch between array dtype ('object') and format specifier ('%5f%5s%5s%5f%8.3f%8.3f%8.3f%8.4f%8.4f%8.4f')

似乎每个值都需要相同的格式。

有没有办法将我的数据框保存为文本文件?

值的格式对我来说太重要了。遗憾的是,to_csv 将丢失格式。

提前致谢

梅尔努什

如果未为列的原始类型正确指定格式,则会出现此错误。考虑以下示例

import pandas as pd
import numpy as np

d = {
    'col_str': ['a', 'b', 'c'],
    'col_float': [1.5, 2.5, 0.7]
}
df = pd.DataFrame(d)
df

然后,如果我尝试用浮点格式保存 col_str,而用字符串格式保存 col_floatTypeError 将引发

fmt = ['%5f', '%5s']
np.savetxt(r'test.txt', df.values, fmt=fmt, delimiter="")
>>> TypeError: Mismatch between array dtype ('object') and format specifier ('%5f%5s')

否则,如果格式指定正确,它将起作用

fmt = ['%5s', '%.2f']
np.savetxt(r'test.txt', df.values, fmt=fmt, delimiter="")