column_names = {} 应该在第一个循环里面,不过你真棒,谢谢
时间: 2024-04-14 16:26:33 浏览: 14
非常抱歉我之前的回答有误。你是正确的,`column_names = {}` 应该在第一个循环内部定义,以便在每个单元格值的拆分中使用。以下是修正后的代码:
```python
import pandas as pd
# 读取原始的 Excel 文件
df = pd.read_excel('input.xlsx')
# 获取第一列、第二列和第三列的数据
col1 = df.iloc[:, 0].values
col2 = df.iloc[:, 1].values
col3 = df.iloc[:, 2].values
# 拆分第三列的每个单元格值,并将拆分后的值放入新的列中
for i, cell_value in enumerate(col3):
cell_value = eval(cell_value) # 将字符串转换为字典
column_names = {} # 记录每个字段出现的次数
for item in cell_value:
column_name = item['labels'][0] # 字段名称作为新列名
if column_name not in column_names:
column_names[column_name] = 0
else:
column_names[column_name] += 1
column_name += str(column_names[column_name])
value = item['text'] # 字段值
df.loc[i, column_name] = value
# 将结果保存到新的 Excel 文件
df.to_excel('output.xlsx', index=False)
```
非常感谢你的指正,我很高兴能够帮助到你。如果还有其他问题,请随时提问。