比较excel文件指定列,相邻两行的值是否相同,并标记颜色。
import pandas as pd
from openpyxl import load_workbook
from openpyxl.styles import PatternFill
"""
比较excel文件指定列,相邻两行的值是否相同,并标记颜色
"""
# 读取Excel文件
file_path = r"E:\DPI\深圳-南方电网\device_id_1227_bak.xlsx"
df = pd.read_excel(file_path)
# 指定要比较的列名
column_name = "ID"
# 获取指定列的数据
col = df[column_name]
# 初始化一个空的列表来存储不同的行
different_rows = []
# 遍历DataFrame,比较相邻两行
for i in range(1, len(df)):
current_row = df.iloc[i]
previous_row = df.iloc[i - 1]
if current_row[column_name] == previous_row[column_name]:
different_rows.append(current_row)
# 统计
print(f"总共有条{len(df)}记录,重复的记录有{len(different_rows)}条。")
# 输出相同的行
print(f"重复的记录是:{different_rows}")
# 加载工作簿
wb = load_workbook(file_path)
ws = wb.active
# 定义填充样式
fill = PatternFill(start_color="FF0000", end_color="FF0000", fill_type="solid")
# 获取列索引
column_index = df.columns.get_loc(column_name) + 1
# 标记相同的内容所在的单元格
for row_index, value in enumerate(col, start=2):
for index, dif_value in different_rows:
if value in dif_value:
cell = ws.cell(row=row_index, column=column_index)
cell.fill = fill
print(value)
# 保存修改后的工作簿
wb.save(file_path)

512

被折叠的 条评论
为什么被折叠?



