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

使用Python2.7中的数据在excel中创建表,python,excel,Python,Excel,我正在尝试将数据导出到excel文件。我的问题是,我的数据来自itertools.composition,我不知道如何将所有组合及其数据导出到excel文件中 我的子集来自一个如下所示的输入文件 carbon_1 xcoordinate ycoordinate zcoordinate 对于n个碳原子数 作为参考,我的代码是 subset = cmd[['carbon','x_coord', 'y_coord','z_coord']] coordinate_values = [t

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

我的子集来自一个如下所示的输入文件

carbon_1    xcoordinate    ycoordinate   zcoordinate
对于n个碳原子数

作为参考,我的代码是

subset = cmd[['carbon','x_coord', 'y_coord','z_coord']]
coordinate_values = [tuple(x) for x in subset.values]

atoms = coordinate_values
atomPairs = itertools.combinations(atoms, 2)

atoms_dict = {k:"carbon_{}".format(i) for i,k in enumerate(atoms,1)}
    print("Computing distance between {} and {}".format(atoms_dict[pair[0]],atoms_dict[pair[1]]))
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
然后我有一个简单的定义来计算距离d,代码的结尾是

subset = cmd[['carbon','x_coord', 'y_coord','z_coord']]
coordinate_values = [tuple(x) for x in subset.values]

atoms = coordinate_values
atomPairs = itertools.combinations(atoms, 2)

atoms_dict = {k:"carbon_{}".format(i) for i,k in enumerate(atoms,1)}
    print("Computing distance between {} and {}".format(atoms_dict[pair[0]],atoms_dict[pair[1]]))
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
我希望能够将每个组合的“债券”导出到excel表格中。如果我在组合中添加另一个坐标,也就是另一个“碳”,excel表格将能够增长。excel工作表如下所示:

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

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

我不知道如何直接帮助您,但我建议您查看一下。文档可能很难找到,但谷歌搜索XLWT和Python Excel应该会给您一些解释。

起初,您似乎不需要任何Excel功能,所以我想您可以使用csv文件作为导出。这更容易使用。有关更多信息,请参阅。可以在excel中轻松导入csv文件

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

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

"Carbon pair"                 "Bond"
Carbon 1 to Carbon 2             2
Carbon 2 to Carbon 3             3
"Carbon pair"                 "Bond"
Carbon 1 to Carbon 2             2
Carbon 2 to Carbon 3             3
增加碳数据库的更好方法是:

Bond     Carbon1     Carbon2     Carbon3
Carbon1     -           5           1
Carbon2     3           -           4
Carbon3     5           1           -
如果您使用此矩阵表示法,则可以更快地访问数据。

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

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

您可以使用

pip install openpyxl
由于我没有所有的代码,我假设您将能够以列表的形式获取所需的数据,或者以逗号分隔的格式获取可以操纵的数据

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

headers = ["Carbon pair","Bond"]
和碳数据

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标签,您可以参考它来了解问题

希望这有帮助。 carbon_data.xlsx

openpyxl是一个非常好的python模块: