以下代码改为指定列重复项的整行标黄:改为重复项整行标黄:import pandas as pd import os # 获取当前目录下的所有Excel文件名 files = [f for f in os.listdir('.') if f.endswith('.xlsx')] # 读取所有Excel文件的所有sheet表 dfs = [] for file in files: sheets = pd.read_excel(file, sheet_name=None, header=1) for sheet_name, sheet_data in sheets.items(): dfs.append(sheet_data) # 合并所有DataFrame result = pd.concat(dfs, ignore_index=True, sort=False) # 判断指定列是否有重复值并标红 def highlight_dup(s): return ['background-color: red' if v else '' for v in s.duplicated(keep=False)] result = result.style.apply(highlight_dup, subset=['客户名称']) # 存储合并后的DataFrame为Excel文件 result.to_excel('merged.xlsx', index=False)
时间: 2024-02-12 15:04:18 浏览: 122
以下是修改后的代码,可以实现指定列重复项的整行标黄:
```python
import pandas as pd
import os
# 获取当前目录下的所有Excel文件名
files = [f for f in os.listdir('.') if f.endswith('.xlsx')]
# 读取所有Excel文件的所有sheet表
dfs = []
for file in files:
sheets = pd.read_excel(file, sheet_name=None, header=1)
for sheet_name, sheet_data in sheets.items():
dfs.append(sheet_data)
# 合并所有DataFrame
result = pd.concat(dfs, ignore_index=True, sort=False)
# 判断指定列是否有重复值并标红
def highlight_dup(df):
return ['background-color: red' if df.duplicated(subset=['客户名称'], keep=False).loc[i] else '' for i in range(len(df))]
# 给重复项整行标黄
result.style.apply(highlight_dup, axis=1)
# 存储合并后的DataFrame为Excel文件
result.to_excel('merged.xlsx', index=False)
```
这段代码中,我们使用了style.apply()方法来为DataFrame中的重复项整行标黄。在highlight_dup()函数中,我们使用了duplicated()方法来判断指定列是否有重复值,并使用loc[]方法来获取每一行的索引,然后使用列表推导式来为每一行判断是否需要标黄。最后,我们使用apply()方法将highlight_dup()函数应用到整个DataFrame中。
阅读全文