如何在python中的表的列上方添加标题

时间:2018-10-30 13:18:34

标签: python python-3.x

我刚刚开始使用Python进行编程课程。

其中一个问题指出:

您遇到了斯特林近似 ln(n!)≈n ln(n)− n 在统计热力学中,可能会想知道这种近似的好坏。 小数字。通过使用Python数学库可以轻松地验证这一点 提供对自然对数以及阶乘函数的访问。 编写一个小的Python脚本来打印n,ln(n!),n ln(n)– n和相对错误: 错误=(ln(n!)−(n ln(n)− n))/ ln(n!) 在表格中显示从2到1000的n值。

我能够处理数据本身(为简单起见,下面将显示2到9):

>>> for x in range(2,10):
...     a = math.log(math.factorial(x))
...     b = x*math.log(x) - x
...     c = (a-b)/a
...     print(x, '\t', a, '\t', b, '\t', c)

结果为:

2        0.6931471805599453      -0.6137056388801094     1.8853900817779268
3        1.791759469228055       0.2958368660043291      0.8348903013573665
4        3.1780538303479458      1.5451774444795623      0.5137975858922471
5        4.787491742782046       3.0471895621705016      0.3635102208239511
6        6.579251212010101       4.750556815368331       0.2779487114435725
7        8.525161361065415       6.621371043387192       0.2233142854483519
8        10.60460290274525       8.635532333438686       0.18568074517875863
9        12.801827480081469      10.775021196025975      0.15832163706385113 

我想将标题放在列的上方,但我不知道如何。我试过在for x in range命令的上方放置另一个print命令,但随后它只是首先打印标题。有很多关于标题的教程,但这些教程并不涉及包含公式和生成的数据的表,而是涉及手动放置在单元格中的固定值。

希望有人可以帮助我。

1 个答案:

答案 0 :(得分:0)

我建议您检查numpy和pandas之类的库,以获取使用python进行数值计算的真正潜力。例如:

import numpy as np
import pandas as pd
import math

a = []
b = []
c = []
x = [i for i in range(2,10)]

for el in x:
    ac = math.log(math.factorial(el))
    a.append(ac)
    bc = el*math.log(el) - el
    b.append(bc)
    c.append((ac-bc)/ac)

array = np.vstack((x,a,b,c))

df = pd.DataFrame(array.T, columns=["x", "a", "b", "c"])

print(df.head())
df.to_excel("table.xlsx", index=False)