# 将结果写入Excel文件中 rows = [] for i, row in enumerate(dist): for j, value in enumerate(list(row)): # 将row转换为列表类型 rows.append({"起始节点": i, "终止节点": j, "最短路长度": value}) df_result = pd.DataFrame(rows) df_result.to_excel(r"C:\Users\li'yi'jie\Desktop\最短路径结果.xlsx", index=False)报错TypeError: 'numpy.int64' object is not iterable如何修改?
时间: 2024-02-17 09:01:41 浏览: 21
这个错误提示是因为在使用`enumerate`函数的时候,其中的`row`是一个`numpy.int64`类型的对象,而这个对象是不可迭代的,所以会出现这个错误。可以通过将`row`转换为列表类型来解决这个问题,具体代码如下:
```
# 将结果写入Excel文件中
rows = []
for i, row in enumerate(dist):
for j, value in enumerate(list(row)): # 将row转换为列表类型
rows.append({"起始节点": i, "终止节点": j, "最短路长度": value})
df_result = pd.DataFrame(rows)
df_result.to_excel(r"C:\Users\li'yi'jie\Desktop\最短路径结果.xlsx", index=False)
```
这样就可以避免这个错误。
相关问题
for i, row in enumerate(rows[10:]):是什么意思
`for i, row in enumerate(rows[10:])` 是一个循环语句,用于遍历名为 `rows` 的列表(或其他可迭代对象)中的元素。
具体来说,`enumerate()` 函数用于给每个元素分配一个索引值,从而方便在循环中使用索引和元素的组合。在这个循环中,我们使用 `enumerate(rows[10:])` 来遍历 `rows` 列表中从索引 10 开始的元素。
循环的语法结构是:
```python
for 变量1, 变量2 in enumerate(可迭代对象):
# 循环体
```
在这个例子中,`i` 是索引值,`row` 是从 `rows[10:]` 中取出的元素。在每次迭代时,`i` 和 `row` 的值会被更新,并执行循环体中的代码。
因此,你可以使用 `i` 和 `row` 来访问列表中的每个元素,并在循环体中执行相应的操作。在你提供的代码示例中,你使用了 `i` 和 `row` 来获取反应 SMILES 数据,并进行后续处理。
希望这样解释清楚了 `for i, row in enumerate(rows[10:])` 这行代码的含义。如果还有任何疑问,请随时提问。
import docxfrom openpyxl import Workbook# 打开 Word 文件doc = docx.Document('example.docx')# 创建 Excel 文件和工作表wb = Workbook()ws = wb.active# 遍历 Word 文档中的表格,并将数据写入 Excel 文件中for table in doc.tables: for i, row in enumerate(table.rows): for j, cell in enumerate(row.cells): ws.cell(row=i+1, column=j+1, value=cell.text)# 保存 Excel 文件wb.save('example.xlsx')
这段代码是用 Python 中的 openpyxl 和 python-docx 库来实现将 Word 文档中的表格数据写入到 Excel 文件中的代码。首先使用 docx 库打开指定的 Word 文件,然后使用 openpyxl 库创建一个 Excel 文件和工作表。接着遍历 Word 文档中的每个表格,将每个单元格的文本内容写入到 Excel 文件对应的单元格中。最后保存 Excel 文件即可。