在一列熊猫数据框中根据特定条件填充颜色,并将其写入Excel,可以通过以下步骤完成:
import pandas as pd
from openpyxl import Workbook
from openpyxl.styles import PatternFill
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
'Age': [25, 30, 35, 40, 45],
'Score': [80, 90, 85, 95, 75]}
df = pd.DataFrame(data)
def color_cell(cell):
if cell >= 90:
return 'FF00FF00' # 绿色
elif cell >= 80:
return 'FFFFFF00' # 黄色
else:
return 'FFFF0000' # 红色
column_name = 'Score' # 需要根据该列的值填充颜色
df[column_name] = df[column_name].apply(color_cell)
wb = Workbook()
ws = wb.active
for index, row in df.iterrows():
row_values = row.values.tolist()
ws.append(row_values)
cell_range = f'{column_name}{index+2}' # Excel单元格的位置
fill = PatternFill(start_color=row[column_name], end_color=row[column_name], fill_type="solid")
ws[cell_range].fill = fill
wb.save('output.xlsx')
完整的代码示例:
import pandas as pd
from openpyxl import Workbook
from openpyxl.styles import PatternFill
# 创建示例数据框
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
'Age': [25, 30, 35, 40, 45],
'Score': [80, 90, 85, 95, 75]}
df = pd.DataFrame(data)
# 定义填充颜色的函数
def color_cell(cell):
if cell >= 90:
return 'FF00FF00' # 绿色
elif cell >= 80:
return 'FFFFFF00' # 黄色
else:
return 'FFFF0000' # 红色
# 应用填充颜色函数到数据框的特定列
column_name = 'Score'
df[column_name] = df[column_name].apply(color_cell)
# 创建Excel工作簿和工作表
wb = Workbook()
ws = wb.active
# 将数据框写入Excel并设置填充颜色
for index, row in df.iterrows():
row_values = row.values.tolist()
ws.append(row_values)
cell_range = f'{column_name}{index+2}' # Excel单元格位置
fill = PatternFill(start_color=row[column_name], end_color=row[column_name], fill_type="solid")
ws[cell_range].fill = fill
# 保存Excel文件
wb.save('output.xlsx')
以上代码会将根据特定条件填充颜色后的数据框写入名为"output.xlsx"的Excel文件中。注意,该示例仅演示了填充颜色的基本功能,实际情况中你可能需要根据自己的需求进行修改和调整。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云