将变化的情况输出到一个新的把表格中并将变化的部分标记颜色
时间: 2024-02-22 14:00:19 浏览: 23
可以在上面的代码基础上,使用pandas库中的style功能将变化的部分标记颜色,并将变化的情况输出到一个新的Excel表格中,代码如下所示:
```python
import pandas as pd
# 读取旧表格和新表格
old_df = pd.read_excel('old.xlsx')
new_df = pd.read_excel('new.xlsx')
# 对新表格和旧表格进行合并,使用outer join方式
merge_df = pd.merge(old_df, new_df, how='outer')
# 判断每行数据的变化情况
change_list = []
for index, row in merge_df.iterrows():
if pd.isna(row['old_column']):
# 新增数据
change_list.append({'type': 'add', 'data': row['new_column']})
merge_df.loc[index, 'new_column'] = '<span style="color:green">{}</span>'.format(row['new_column'])
elif pd.isna(row['new_column']):
# 删除数据
change_list.append({'type': 'delete', 'data': row['old_column']})
merge_df.loc[index, 'old_column'] = '<span style="color:red">{}</span>'.format(row['old_column'])
elif row['old_column'] != row['new_column']:
# 修改数据
change_list.append({'type': 'modify', 'old_data': row['old_column'], 'new_data': row['new_column']})
merge_df.loc[index, 'old_column'] = '<span style="color:red">{}</span>'.format(row['old_column'])
merge_df.loc[index, 'new_column'] = '<span style="color:green">{}</span>'.format(row['new_column'])
# 将变化情况输出到新表格中
change_df = pd.DataFrame(change_list)
change_df.to_excel('change.xlsx', index=False)
# 将变化的部分标记颜色
merge_df = merge_df.style.render()
merge_df = merge_df.replace('<', '<').replace('>', '>')
merge_df = pd.DataFrame.from_records([[merge_df]], columns=['merge_df'])
merge_df.to_excel('merge.xlsx', index=False)
```
在上面的代码中,我们首先使用和上面一样的方法判断每行数据的变化情况,并将变化的部分标记颜色。接着,我们将变化情况输出到一个新的Excel表格(change.xlsx)中。最后,我们使用pandas的style功能将变化的部分标记颜色,并将表格输出到一个新的Excel表格(merge.xlsx)中。注意,由于style.render()方法返回的是一个HTML字符串,因此需要将"<"和">"替换成"<"和">"。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)