import openpyxl import jionlp as jio workbook = openpyxl.load_workbook('地址.xlsx') worksheet = workbook.active address_column = 'A' output_column = 'B' # 遍历所有行并提取地址信息,然后将结果输出到新的列 for row in range(2, worksheet.max_row + 1): address = worksheet[f'{address_column}{row}'].value if address is None: # 如果单元格为空,则跳过该行 continue # 使用 JioNLP 提取地址信息 result = jio.parse_location(address) # 将结果拼接成字符串形式,方便输出到 Excel 文件中 result_str = '' for key, value in result.items(): result_str += f'{key}:{value} ' # 将结果输出到新的列 worksheet[f'{output_column}{row}'] = result_str.strip() # 保存 Excel 文件 workbook.save('output_file.xlsx')怎么将result的数据分列到新表中
时间: 2024-02-23 13:59:36 浏览: 107
如果你想将 `result` 中的数据分列到新表中,可以考虑使用 `pandas` 库来进行操作,具体步骤如下:
1. 将 `result` 转换成 `pandas` 的 `DataFrame`,其中每个字典项都是一列:
```python
import pandas as pd
result_df = pd.DataFrame(result)
```
2. 将 `result_df` 追加到原有的 Excel 文件中:
```python
with pd.ExcelWriter('output_file.xlsx', engine='openpyxl', mode='a') as writer:
result_df.to_excel(writer, index=False, sheet_name='Sheet1', startrow=1, startcol=2)
```
上述代码中,`startrow` 和 `startcol` 参数分别指定了追加数据的起始行和起始列,这里假设你想将数据追加到第一张表格的第二列。
完整代码如下:
```python
import openpyxl
import jionlp as jio
import pandas as pd
workbook = openpyxl.load_workbook('地址.xlsx')
worksheet = workbook.active
address_column = 'A'
output_column = 'B'
# 遍历所有行并提取地址信息,然后将结果输出到新的列
for row in range(2, worksheet.max_row + 1):
address = worksheet[f'{address_column}{row}'].value
if address is None: # 如果单元格为空,则跳过该行
continue
# 使用 JioNLP 提取地址信息
result = jio.parse_location(address)
# 将结果拼接成字符串形式,方便输出到 Excel 文件中
result_str = ''
for key, value in result.items():
result_str += f'{key}:{value} '
# 将结果输出到新的列
worksheet[f'{output_column}{row}'] = result_str.strip()
# 将 result 的数据分列到新表中
result_df = pd.DataFrame(result)
with pd.ExcelWriter('output_file.xlsx', engine='openpyxl', mode='a') as writer:
result_df.to_excel(writer, index=False, sheet_name='Sheet1', startrow=1, startcol=2)
# 保存 Excel 文件
workbook.save('output_file.xlsx')
```
阅读全文