使用Python2.7中的数据在excel中创建一个表

2024-10-04 03:29:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将数据导出到excel文件。我的问题是我的数据来自itertools.组合我不知道如何将所有的组合及其数据导出到excel文件中

我的子集来自一个输入文件

carbon_1    xcoordinate    ycoordinate   zcoordinate

对于n个碳数

作为参考,我的代码是

^{pr2}$

然后我有一个简单的定义来计算距离d,代码的结尾是

if d >= 1.4 and d < 1.6:
    bond = 1
elif d >= 1.2 and d < 1.4:
    bond = 2
elif d >= 1 and d < 1.2:
    bond = 3
else:
    bond = 0

每个组合的代码输出是

Computing distance between carbon_1 and carbon_2
2

我想能够导出'债券'为每个组合到一个excel表。如果我在组合中添加另一个坐标,也就是另一个“carbon”,excel表格将能够增长。excel工作表如下所示:

"Carbon pair"                 "Bond"
Carbon 1 to Carbon 2             2
Carbon 2 to Carbon 3             3

我对Python非常陌生,我不确定如何将任何内容导出到excel中,更不用说在excel中创建一个满足这些条件的表。如有建议,将不胜感激。在


Tags: and文件to数据代码excel子集itertools
3条回答

我不知道如何直接帮助您,但我建议您查看XLWT module。文档可能很难找到,但是Google搜索“XLWT”和“pythonexcel”应该会给你一些解释。在

一开始,你似乎不需要任何excel功能,所以我想你可以使用csv文件作为导出。这更容易使用。有关详细信息,请参见Python 2.7 CSV doc。csv文件可以很容易地导入到excel中。在

如果您真的需要创建一个excel文件,那么您应该看看XlsxWriter。我以前用过它,很容易使用。在

为了能够扩大您的表,您应该考虑使用矩阵来存储您的日期。所以不要用这样的方法:

"Carbon pair"                 "Bond"
Carbon 1 to Carbon 2             2
Carbon 2 to Carbon 3             3

增加碳数据库的更好方法是:

^{pr2}$

如果您使用这种矩阵表示法,那么您将能够更快地访问数据。在

注意:此问题是开放式的,因此答案可能基于经验。没有一种解决办法比其他办法更好。在

我在excel工作中使用openpyxl,因为我可以用最新的xlsx格式保存文件。在

您可以使用

pip install openpyxl

因为我没有所有的代码,我假设你将能够得到所需的数据在一个列表,或一些格式,是逗号分隔和可以操纵。在

例如,我在下面的列表中有数据。 标题信息位于:

^{pr2}$

以及碳数据

carbon_data = [["Carbon 1 to Carbon 2",2],["Carbon 2 to Carbon 3",3]]

一旦你有了它,你就可以创建一个新的工作簿并像在excel中一样处理数据。 演示代码:

from openpyxl.workbook import Workbook

headers = ["Carbon pair","Bond"]   

carbon_data= [["Carbon 1 to Carbon 2",2],["Carbon 2 to Carbon 3",3]]
dest_filename = 'carbon_data.xlsx'

#Open new workbook
wb = Workbook()

ws1 = wb.active
ws1.title = "carbon_pairs_bonds"

#Add headers
ws1.append(headers)

#Add data
for row in carbon_data:
    ws1.append(row)

#Save workbook
wb.save(filename = dest_filename)

一旦创建了一个文件,就可以像在excel中那样添加、操作列和行。openpyxl站点有详细的教程和示例。其中有一个openpyxl标记,以便您可以参考以获取问题。在

希望这有帮助。 碳_数据.xlsx

enter image description here

相关问题 更多 >