我需要将程序中的一些数据写入 Excel 电子表格。我在网上搜索过,似乎有很多可用的软件包(xlwt、XlsXcessive、openpyxl)。其他人建议写入 .csv 文件(从未使用过 CSV,也不太明白它是什么)。
程序非常简单。我有两个列表(浮点)和三个变量(字符串)。我不知道两个列表的长度,它们的长度可能不会相同。
我希望布局如下图所示:
粉色列将包含第一个列表的值,绿色列将包含第二个列表的值。
那么最好的方法是什么?
我运行的是 Windows 7,但运行此程序的计算机上不一定安装 Office。
import xlwt
x=1
y=2
z=3
list1=[2.34,4.346,4.234]
book = xlwt.Workbook(encoding="utf-8")
sheet1 = book.add_sheet("Sheet 1")
sheet1.write(0, 0, "Display")
sheet1.write(1, 0, "Dominance")
sheet1.write(2, 0, "Test")
sheet1.write(0, 1, x)
sheet1.write(1, 1, y)
sheet1.write(2, 1, z)
sheet1.write(4, 0, "Stimulus Time")
sheet1.write(4, 1, "Reaction Time")
i=4
for n in list1:
i = i+1
sheet1.write(i, 0, n)
book.save("trial.xls")
我根据你的所有建议写了这篇文章。它完成了工作,但还可以稍微改进。
如何将 for 循环中创建的单元格(list1
值)设置为科学或数字格式?
我不想截断这些值。程序中使用的实际值小数点后大约有 10 位数字。
最佳答案
使用DataFrame.to_excel来自pandas 。 Pandas 允许您以功能丰富的数据结构表示您的数据,并让您read in excel 文件也是如此。
您首先必须将数据转换为 DataFrame,然后将其保存到 Excel 文件中,如下所示:
In [1]: from pandas import DataFrame
In [2]: l1 = [1,2,3,4]
In [3]: l2 = [1,2,3,4]
In [3]: df = DataFrame({'Stimulus Time': l1, 'Reaction Time': l2})
In [4]: df
Out[4]:
Reaction Time Stimulus Time
0 1 1
1 2 2
2 3 3
3 4 4
In [5]: df.to_excel('test.xlsx', sheet_name='sheet1', index=False)
生成的 Excel 文件如下所示:
请注意,两个列表的长度必须相同,否则 pandas 会提示。要解决此问题,请将所有缺失值替换为 None
。
关于python - 如何使用 Python 写入 Excel 电子表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57444493/