【问题标题】:Highlighting multiple cells in a row based on other values in the row in a Pandas DataFrame根据 Pandas DataFrame 中行中的其他值突出显示一行中的多个单元格
【发布时间】:2018-07-18 18:57:21
【问题描述】:

我试图根据两个条件突出显示我的 pandas 数据框中的单元格:

  • 如果 A 细胞 - B 细胞 > 10 以绿色突出 B 细胞 else if ((B 细胞 - A 细胞)/B 细胞 * 100) > 20 以红色突出 B 细胞

  • 如果 A 单元 - C 单元 > 10 以绿色突出 C 单元 else if ((C 单元 - A 单元)/C 单元 * 100) > 20 以红色突出 C 单元

i  A  B  C   D
0  4  2  3  Jim
1  3  3  2  Bob
2  3  2  4  Joe

我用子集尝试了 apply() 和 applymap() 的一些变体,但我无法做到我想要的。

【问题讨论】:

标签: python excel pandas dataframe slice


【解决方案1】:

试试看:https://xlsxwriter.readthedocs.io/

你基本上会得到类似的结果:

    excel_file = StringIO.StringIO()
    writer = pd.ExcelWriter(excel_file,
                            engine='xlsxwriter')
    some_data_frame.to_excel(writer,
                             sheet_name='some_sheet_name',
                             engine='xlsxwriter',
                             encoding='utf-8')
    worksheet = writer.sheets['some_sheet_name']
    worksheet.conditional_format('B',
                                 {'type': 'cell',
                                  'criteria': '>=',
                                  'value': 5,
                                  'format': hot
                                  })
    writer.save()
    writer.close()

在您的情况下,您可以将值设置为等于您的计算。

【讨论】:

  • 抱歉进行了编辑,pivot 只是我代码库中的一个数据框。您只需使用可以从任何 pandas DataFrame 调用的 .to_excel() 函数
  • 谢谢,我根据你的回答想通了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-15
  • 1970-01-01
  • 2018-01-04
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
相关资源
最近更新 更多