使用openpyxl读取Excel后,如何将工作表评论转为同维度pandas DataFrame
提取Excel单元格评论生成同维度DataFrame
你可以借助openpyxl的单元格评论属性,配合遍历工作表的所有单元格来实现,最终生成和原表维度完全一致的评论DataFrame,没有评论的单元格用空值填充。代码示例如下:
from openpyxl import load_workbook import pandas as pd wb = load_workbook(filename='test.xlsx', data_only=True) ws = wb[wb.sheetnames[1]] # 获取工作表的最大行和列,保证维度和原表一致 max_row = ws.max_row max_col = ws.max_column # 初始化存储评论的二维列表 comments_list = [] for i in range(1, max_row + 1): row_comments = [] for j in range(1, max_col + 1): cell = ws.cell(row=i, column=j) # 单元格有评论则取文本,无评论则填空字符串(也可以用pd.NA表示缺失) comment_text = cell.comment.text if cell.comment else '' row_comments.append(comment_text) comments_list.append(row_comments) # 转换为DataFrame comments_df = pd.DataFrame(comments_list)
关键说明:
- 用
ws.max_row和ws.max_col获取工作表的实际行列数,确保生成的DataFrame和原数据维度完全匹配 - 遍历每个单元格时,通过
cell.comment判断是否存在评论,存在则提取comment.text,否则填充空值 - 如果需要用缺失值标记无评论的单元格,可以把空字符串换成
pd.NA,方便后续的缺失值处理
内容的提问来源于stack exchange,提问作者Frash
相关产品推荐
相关产品推荐

