📅  最后修改于: 2023-12-03 14:49:37.279000             🧑  作者: Mango
在 Pandas 中,apply() 是一个非常强大的函数。它可以将一个函数应用到 Pandas DataFrame 的每一行或每一列。这个函数可以是一个现成的 Python 函数,也可以是一个自定义函数。
我们可以使用 Pandas DataFrame 的 apply() 函数来突出显示特定列。下面是一个例子:
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35]
}
df = pd.DataFrame(data)
df.style.applymap(lambda x: 'background-color: yellow', subset=['age'])
这段代码会将 DataFrame 的 'age' 列突出显示,使其变成黄色。注意,我们使用了 lambda 函数来将每一个单元格的背景颜色都设置成黄色。
如果我们想要根据某个条件突出显示单元格,我们可以使用 applymap() 函数中的 if-else 语句。下面是一个例子:
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35]
}
df = pd.DataFrame(data)
def highlight_age(x):
if x > 30:
return 'background-color: red'
else:
return 'background-color: yellow'
df.style.applymap(highlight_age, subset=['age'])
这段代码会将 DataFrame 的 'age' 列突出显示,如果单元格的值大于 30,那么背景颜色为红色,否则为黄色。
除了突出显示特定列之外,我们还可以使用 apply() 函数来突出显示特定行或列。下面是一个例子:
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35],
'gender': ['female', 'male', 'male']
}
df = pd.DataFrame(data).set_index('name')
def highlight_female(s):
return ['background-color: pink' if v == 'female' else '' for v in s]
def highlight_age(s):
return ['background-color: red' if v > 30 else '' for v in s]
df.style.apply(highlight_female, axis=0, subset=['gender'])\
.apply(highlight_age, axis=0, subset=['age'])
这段代码会将 DataFrame 中的 'gender' 列突出显示为粉色,'age' 列中大于 30 的单元格突出显示为红色。
Pandas 的 apply() 函数非常灵活,它可以帮助我们实现各种数据处理的需求。在突出显示 DataFrame 中特定的行或列时,我们可以使用 apply() 函数和 applymap() 函数。通过结合 if-else 语句或其他逻辑,我们可以实现更加复杂的需求。