小编Loc*_*ost的帖子

将样式化的 Pandas 数据框导出到 excel

我正在尝试使用下面的 scrpit 将时尚的数据框导出到 exel 文件

  import pandas as pd
  import numpy as np

  np.random.seed(24)
  df = pd.DataFrame({'A': np.linspace(1, 10, 10)})
  df = pd.concat([df, pd.DataFrame(np.random.randn(10, 4), 
  columns=list('BCDE'))],axis=1)
  df.iloc[0, 2] = np.nan


  def highlight_greater(x):
      r = 'red'
      g = 'gray'

      m1 = x['B'] > x['C']
      m2 = x['D'] > x['E']

      df1 = pd.DataFrame('background-color: ', index=x.index, columns=x.columns)
      #rewrite values by boolean masks
      df1['B'] = np.where(m1, 'background-color: {}'.format(r), df1['B'])
      df1['D'] = np.where(m2, 'background-color: {}'.format(g), df1['D'])
      return df1


  df.style.apply(highlight_greater, axis=None).to_excel('df.xlsx', engine='openpyxl')
Run Code Online (Sandbox Code Playgroud)

它运行良好,但是当我打开文件时,条件不匹配时背景为黑色,解决此问题的想法是什么?

python pandas pandas-styles

4
推荐指数
1
解决办法
1598
查看次数

比较数据框中的两列并使用 pandas 样式突出显示值

我试图使用 pandas 样式突出显示数据框中某些列中的某些值,例如:

import pandas as pd
import numpy as np

np.random.seed(24)
df = pd.DataFrame({'A': np.linspace(1, 10, 10)})
df = pd.concat([df, pd.DataFrame(np.random.randn(10, 4), 
columns=list('BCDE'))],axis=1)
df.iloc[0, 2] = np.nan

def highlight_greater(row):

    color=""
    if row['B'] > row['C']:
       color = 'red'
    elif row['D'] > row['E']:
        color = 'gray'

    background = ['background-color: {}'.format(color) for _ in row]
    return background

with open ('out.html','w') as out:
    print >> out, df.style.apply(highlight_greater, axis=1).render()
Run Code Online (Sandbox Code Playgroud)

这工作正常,但不符合我的目标,我只想突出显示 B 和 D 列。如果匹配条件,此脚本会突出显示该行中的所有列。任何想法 ?谢谢

python pandas pandas-styles

3
推荐指数
1
解决办法
4374
查看次数

标签 统计

pandas ×2

pandas-styles ×2

python ×2