我正在从数据框中写一个字符串。我希望它尊重formatters
,但我不想要字符串中的标题。我怎样才能得到这两样东西:没有标题,是格式化?
import pandas
df = pandas.DataFrame({'c': 1, 'd': 2.3}, index=[0], )
formats = {'c': '{: 10d}', 'd': '{: 2.5f}'}
formatters = {k: v.format for k, v in formats.items()}
df.to_string(formatters=formatters, index=False, header=True)
u'c d\n 1 2.30000'
df.to_string(formatters=formatters, index=False, header=False)
'1 2.30000'
我相信预期的结果是这样的?:
' 1 2.30000'
答案 0 :(得分:1)
[免责声明:我从未听说过DataFrame
]
这对我来说只是DataFrame
中的一个错误。尝试向开发人员报告错误。
作为一种解决方法,看起来您可以从字符串中删除第一行:
raw = df.to_string(formatters=formatters, index=False, header=True)
without_headers = '\n'.join(foo.splitlines()[1:])
答案 1 :(得分:0)
您可以制作第二个DataFrame
,其中包含正确格式化的所有内容
df2 = pd.DataFrame()
for col_name, col in df.iteritems():
df2[col_name] = col.apply(lambda x: formats[col_name].format(x))
然后将所有内容连接在一起
print(''。join(''。join(i [1:])for d in df2.itertuples()))
' 1 2.30000'