Как сохранить панд, чтобы преуспеть с разными цветами

1

У меня есть датафрейм

df = pd.DataFrame(columns = ['id', 'name', 'age'])
df.loc[len(df), :] = [1, 'John', 21]
df.loc[len(df), :] = [2, 'Mary', 19]
df.loc[len(df), :] = [3, 'Ann', 27]
df.loc[len(df), :] = [4, 'Ben', 18]

Я хочу сохранить его в файл Excel с помощью xlsxwriter.

Тем не менее, я хочу, чтобы age старше 20 лет был красным.

Другими словами, 21 и 27 должны отображаться красным цветом в файле Excel.

Как это сделать?

Теги:
dataframe

2 ответа

0

Openpyxl 2.5 включает встроенную поддержку Pandas Dataframes и именованных стилей.

проверьте ссылку ниже: https://openpyxl.readthedocs.io/en/latest/formatting.html

0

Вы можете использовать условный формат с xlsxwriter следующим образом:

import pandas as pd

# Create a Pandas dataframe from some data.
df = pd.DataFrame(columns = ['id', 'name', 'age'])
df.loc[len(df), :] = [1, 'John', 21]
df.loc[len(df), :] = [2, 'Mary', 19]
df.loc[len(df), :] = [3, 'Ann', 27]
df.loc[len(df), :] = [4, 'Ben', 18]

# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter('pandas_conditional.xlsx', engine='xlsxwriter')

# Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer, sheet_name='Sheet1')

# Get the xlsxwriter workbook and worksheet objects.
workbook  = writer.book
worksheet = writer.sheets['Sheet1']


# Add a format. Light red fill with dark red text.
format1 = workbook.add_format({'bg_color': '#FFC7CE',
                               'font_color': '#9C0006'})

# Set the conditional format range.
start_row = 1
start_col = 3
end_row = len(df)
end_cold = start_col

# Apply a conditional format to the cell range.
worksheet.conditional_format(start_row, start_col, end_row, end_cold,
                             {'type':     'cell',
                              'criteria': '>',
                              'value':    20,
                              'format':   format1})

# Close the Pandas Excel writer and output the Excel file.
writer.save()

Выход:

Изображение 174551

Ещё вопросы

Сообщество Overcoder
Наверх
Меню