在Pandas中突出显示每一列的最小值

在Pandas中突出显示每一列的最小值

在这篇文章中,我们将讨论如何在Pandas数据框架中突出最小值。那么,让我们首先制作一个数据框架。

# Import Required Libraries
import pandas as pd
import numpy as np
  
# Create a dictionary for the dataframe
dict = {
  'Name': ['Sumit Tyagi', 'Sukritin', 
           'Akriti Goel', 'Sanskriti',
           'Abhishek Jain'],
  'Age': [22, 20, 45, 21, 22],
  'Marks': [90, 84, 33, 87, 82]
}
  
# Converting Dictionary to 
# Pandas Dataframe
df = pd.DataFrame(dict)
  
# Print Dataframe
print(df)

输出:

突出显示每一列的最小值 在Pandas中

现在,来看看突出显示的部分。我们的目标是突出显示每一列中具有最小值的单元格。

方法1:使用df.style.highlight_min()方法。

语法: DataFrame.style.highlight_min(subset, color, axis)
参数:

  • subset: 你想找到最小值的列的名称。
  • color: 突出显示单元格的颜色名称。
  • axis: {0或’index’, 1或’columns’}基于你想找到最小值的轴。

返回:造型器对象。

例子:突出显示每一列中具有最小值的单元格。

# Highlighting the minimum values of last 2 columns
df.style.highlight_min(color = 'lightgreen', 
                       axis = 0)

输出:

突出显示每一列的最小值 在Pandas中

方法2:使用df.style.apply()方法。

语法: DataFrame.style.apply(self, func, axis=0, subset=None, **kwargs)

参数:

  • func: 它应该根据坐标轴接收一个pandas.Series或pandas.DataFrame,并且应该返回一个具有相同形状的对象。
  • axis: {0或’索引’,1或’列’,无},默认为0。应用于每一列(axis=0或’index’),每一行(axis=1或’columns’),或者用axis=None一次性应用于整个Dataframe。
  • subset: 你想调用该函数的列或行的集合。
  • **kwargs: 传递给func。

返回:造型器对象。

例子1:突出显示文本而不是单元格。

# Defining custom function 
# which returns the list for
# df.style.apply() method
def highlight_min(s):
    
    is_min = s == s.min()
      
    return ['color: green' if cell else '' 
            for cell in is_min]
  
df.style.apply(highlight_min)

输出:

突出显示每一列的最小值 在Pandas中

例子2:突出显示具有最小值的单元格。

# Defining custom function
# which returns the list for
# df.style.apply() method
def highlight_min(s):
    is_min = s == s.min()
      
    return ['background: lightgreen' if cell else '' 
            for cell in is_min]
  
df.style.apply(highlight_min)

输出:

突出显示每一列的最小值 在Pandas中

例子3:高亮显示最小值的单元格,但不高亮显示字符串的值。

# Defining custom function 
# which returns the list for
# df.style.apply() method
def highlight_min(s):
    if s.dtype == np.object:
        is_min = [False for _ in range(s.shape[0])]
    else:
        is_min = s == s.min()
          
    return ['background: lightgreen' if cell else '' 
            for cell in is_min]
  
df.style.apply(highlight_min)

输出:

突出显示每一列的最小值 在Pandas中

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程