python_excel比较相邻两行

比较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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值