Pandas在Excel中使用颜色填充单元格

您所在的位置:网站首页 excel如何填充背景颜色 Pandas在Excel中使用颜色填充单元格

Pandas在Excel中使用颜色填充单元格

2024-07-12 05:23| 来源: 网络整理| 查看: 265

Pandas在Excel中使用颜色填充单元格

在本文中,我们将介绍如何使用Pandas库来在Excel表格中使用颜色填充单元格。Pandas是一个流行的Python数据分析库,它可以非常方便地从各种数据源读取数据,并且在数据预处理,数据清洗和数据可视化方面表现出色。填充单元格通常用于强调特定单元格或单元格集合中的数据,并使数据更加易于阅读。

阅读更多:Pandas 教程

准备工作

首先,我们需要安装Pandas库。可以使用以下命令在Python中安装Pandas:

pip install pandas

除了Pandas,我们还需要使用openpyxl库来访问和编辑Excel文件。可以使用以下命令在Python中安装openpyxl:

pip install openpyxl

我们还需要创建一个示例Excel文件,以便在后面的代码中使用。可以手动创建一个名为“ sample.xlsx ”的Excel文件或使用以下Python代码创建它:

import openpyxl workbook = openpyxl.Workbook() sheet = workbook.active sheet['A1'] = 'Name' sheet['B1'] = 'Age' sheet['C1'] = 'Gender' sheet['A2'] = 'John' sheet['B2'] = '23' sheet['C2'] = 'Male' sheet['A3'] = 'Maggie' sheet['B3'] = '33' sheet['C3'] = 'Female' sheet['A4'] = 'David' sheet['B4'] = '19' sheet['C4'] = 'Male' workbook.save('sample.xlsx')

该代码将创建一个名为“ sample.xlsx”的Excel文件,其中包含一个名为“ Sheet ”的工作表,该工作表包含名称,年龄和性别列中的数据,如下所示:

| Name | Age | Gender | |--------|-----|--------| | John | 23 | Male | | Maggie | 33 | Female | | David | 19 | Male | 使用Pandas填充单元格

一旦我们准备好了,我们就可以使用Pandas库填充单元格了。首先,我们需要使用Pandas中read_excel函数读取Excel文件,并将其存储在DataFrame对象中。然后,我们可以使用style属性对DataFrame对象进行操作,从而设置单元格的颜色。

以下是一个示例代码,它从“ sample.xlsx”文件中读取DataFrame对象,并将年龄小于25的单元格设置为红色,将年龄大于30的单元格设置为绿色:

import pandas as pd from openpyxl.styles import PatternFill from openpyxl.styles.colors import RED, GREEN # Read sample.xlsx df = pd.read_excel('sample.xlsx', engine='openpyxl') # Create empty style object style = pd.DataFrame().style # Define fill colors red_fill = PatternFill(start_color=RED, end_color=RED, fill_type='solid') green_fill = PatternFill(start_color=GREEN, end_color=GREEN, fill_type='solid') # Set color for cells with age less than 25 style.applymap(lambda cell: red_fill if cell.name[1] == 'Age' and cell.value < 25 else None) # Set color for cells with age greater than 30 style.applymap(lambda cell: green_fill if cell.name[1] == 'Age' and cell.value > 30 else None) # Export to Excel with pd.ExcelWriter('sample_colored.xlsx', engine='openpyxl') as writer: df.to_excel(writer, sheet_name='Sheet1', index=False) writer.sheets['Sheet1'].delete_rows(1) writer.sheets['Sheet1'].sheet_view.zoomScale = 80 for col in writer.sheets['Sheet1'].columns: max_length = 0 column = col[0].column_letter # Get the column name for cell in col: try: # Find the length of the longest string in the column if len(str(cell.value)) > max_length: max_length = len(cell.value) except: pass adjusted_width= (max_length + 2) * 1.2 # Set the column width writer.sheets['Sheet1'].column_dimensions[column].width = adjusted_width for row in writer.sheets['Sheet1'].rows: for cell in row: if isinstance(cell.fill, PatternFill): # Set the font color of the text cell.font = openpyxl.styles.Font(color='FFFFFF')

代码中,我们首先使用read_excel函数读取Excel文件,并将其存储在DataFrame对象中。然后,我们创建一个空样式对象,并使用PatternFill和colors模块定义红色和绿色填充颜色。

接下来,我们使用applymap函数在DataFrame对象中设置单元格颜色。applymap函数接受一个lambda函数,该函数将每个单元格作为输入,并返回要应用于该单元格的样式。

最后,我们使用ExcelWriter和openpyxl库将DataFrame对象导出到Excel文件中。在导出期间,我们还使用delete_rows命令删除了标题行,并使用zoomScale和column_dimensions命令设置了工作表的缩放和列宽。最后,我们使用font命令将字体颜色设置为白色,以确保它可以在填充颜色上正确显示。

总结

使用Pandas和openpyxl库,我们可以很容易地在Excel表格中使用颜色填充单元格。我们可以通过读取Excel文件并将其转换为DataFrame对象来开始,然后使用style属性和applymap函数设置单元格颜色。最后,我们可以使用ExcelWriter和openpyxl库将DataFrame对象导出到Excel文件中,并将填充颜色和其他格式应用于单元格。

在实际应用中,可以使用一些类似于这个示例的脚本来填充单元格。例如,我们可以使用类似的代码设置某些单元格的文本格式,设置某些单元格的数字格式或将某些单元格中的数据过滤为特定条件。Pandas和openpyxl库提供了大量的功能来帮助我们轻松操作Excel和其他数据源中的数据,并根据需要进行数据可视化和数据分析。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3