使用Python2.7的数据在Excel中创build一个表

我正试图将我的数据导出到Excel文件。 我的问题是,我的数据来自itertools.combination,我不知道如何将所有的组合和他们的数据导出到Excel文件

我的子集来自一个input文件,看起来像

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]])) 

然后,我有一个简单的定义来计算距离,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表格。 如果我添加另一个坐标组合,也就是另一个“碳”,excel表格将能够增长。 Excel工作表看起来像这样:

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

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

起初,似乎你目前不需要任何的Excelfunction,所以我想你可以使用一个CSV文件作为出口。 这更容易使用。 有关更多信息,请参阅Python 2.7 CSV文档 。 csv文件可以很容易地导入到Excel中。

如果你真的需要创build一个Excel文件,那么你应该看看XlsxWriter 。 我前段时间使用过,使用起来非常简单。

为了能够增长你的桌子,你应该考虑使用matrix来存储你的date。 所以不要使用这样的东西:

 "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 - 

如果使用这种matrix符号,那么您将能够更快地访问您的数据。

我不知道如何直接帮助你,但我build议查看XLWT模块 。 文档可能很难find,但一些谷歌search“XLWT”和“Python Excel”应该引导你一些解释。

注:这个问题是开放式的,所以答案可能是基于经验的。 没有比其他解决scheme更好的解决scheme。

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

您可以使用安装它

 pip install openpyxl 

由于我没有所有的代码,我假设你将能够获得所需的数据列表中,或一些格式,逗号分隔,可以操纵。

例如,我有一个列表中的数据如下。 头信息在:

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

和碳数据

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

一旦你有了,你可以创build一个新的工作簿,并像在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) 

一旦你创build了一个文件,你可以像在Excel中一样添加,操纵列,行。 openpyxl网站有详细的教程和例子。 SO中有一个openpyxl标签,你可以参考问题。

希望这可以帮助。 carbon_data.xlsx

在这里输入图像说明