簡體   English   中英

為什么造型 pandas dataframe 不起作用?

[英]Why styling pandas dataframe does not work?

我想將相同的背景顏色應用於每個 PEOPLE 實例具有名稱和相關名稱的單元格。 我試過df.style.applymap,它沒有返回錯誤,但它似乎不起作用。 任何人都有任何想法為什么? 謝謝你。

   clrs = list(mcolors.CSS4_COLORS.keys())
   for k in range(len(PEOPLE)):
        if PEOPLE[k].attribute == 'child':
            df1_data = [PEOPLE[k].name, PEOPLE[k].related]
    
            df.style.applymap([lambda x: 'background-color: yellow' if x in df1_data else 'background-color: red'])
    

    df.to_excel('styledz.xlsx', engine='openpyxl')

是有關df.style的更多信息。 在這里,我使用了一些簡單的示例,因為我沒有您的數據:

import pandas as pd
import numpy as np

df = pd.DataFrame({'a': np.random.randint(0, 10, 10), 'b': np.random.randint(0, 10, 10), 'late': np.random.choice([0, 1], 10).astype(np.bool)})

def highlight_late(s):
    return ['background-color: red' if s['late'] else 'background-color: green' for s_ in s]
df = df.style.apply(highlight_late, axis=1)
df.to_excel('style.xlsx', engine='openpyxl')

在 excel 文件中看起來像這樣:

在此處輸入圖像描述


對於基於cell的着色使用:

def highlight_late(s):
    return ['background-color: red' if s_ else 'background-color: green' for s_ in s]


df = df.style.apply(highlight_late, subset=["late"], axis=1)

這給了你:

在此處輸入圖像描述

基本上,您的解決方案將是對以下內容的修改:

df = DataFrame([['mark', 2], ['mike', 4], ['manny', 6]], columns=['name', 'attribute']) 
def style_row(row, people):
    output = Series("", index=row.index)
    if row["name"] in people:
        output['attribute'] = "background-color:red;"
    return output
styler = df.style.apply(style_row, axis=1, people=['mark', 'manny'])
styler

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM