使用Python2.7中的数据在excel中创建表
我正在尝试将数据导出到excel文件。我的问题是,我的数据来自itertools.composition,我不知道如何将所有组合及其数据导出到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
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模块: