文本文件的Pandas DF输出格式



当我将Pandas数据帧打印到文件中时,如何为其设置列格式?

或者在哪里可以找到有关如何做到这一点的文档?

我所发现的只是关于如何格式化DF以进行可视化的信息,而不是关于以某种格式打印DF的信息。

def print_Report(dataframe, originalFile, newFile):

pageNum = 1
start_row = 0
end_row = 49
max_row = len(dataframe.index)
ln4pad = 123
padding = ' '
#Grabs lines 5-17 of original report file via slice
originalHeader = retrieveHeader(originalFile)
while start_row < max_row:
with open(newFile, 'a') as f:
#Writes Lines 1-4 of header
ln4 = 'Page   ' + str(pageNum)
f.write(f'n1nnn{ln4.rjust(ln4pad, padding)}nn'
#Writes Lines 5-17 of header
for item in originalHeader:
f.write(item)
#Writing DF to file
dfAsString = (dataframe.iloc[start_row:end_row]).to_string(index=False, header=False)
f.write(dfAsString)
#Update Values
pageNum += 1
start_row += 49
end_row   += 49
if end_row > max_row
end_row = max_row

我知道问题是在列格式的适当位置插入空白。但我只是很难找到如何做到这一点。

所需格式:

EGG  HATCH TIME      EF    EB
NO  HR MN SECONDS   SCAL  DCAL
1  15 50 47.9293   67.1  21.6
2  15 50 48.9824   67.1  21.6
3  15 50 50.9657   67.2  20.4

当前打印为:

EGG  HATCH TIME      EF    EB
NO  HR MN SECONDS   SCAL  DCAL
1 15 50 47.9293 67.1 21.6
2 15 50 48.9824 67.1 21.6
3 15 50 50.9657 67.2 20.4

您可以使用col_space参数到to_string来对齐列:

dfAsString = (dataframe.iloc[start_row:end_row]).to_string(index=False, header=False, ,col_space=[5,3,2,7,6,5])

然后输出应该看起来像:

NO  HR MN SECONDS   SCAL  DCAL
1  15 50 47.9293   67.1  21.6
2  15 50 48.9824   67.1  21.6
3  15 50 50.9657   67.2  20.4

最新更新