Pandas 16-条件格式化

1. 使用条件表达式

条件表达式可以直接在 DataFrame 上应用,根据条件对数据进行格式化。

示例代码
import pandas as pd  
  
# 创建示例 DataFrame  
df = pd.DataFrame({  
    'A': [1, 2, 3, 4, 5],    'B': [10, 20, 30, 40, 50]})  
  
# 使用条件表达式进行格式化  
df['A_formatted'] = df['A'].apply(lambda x: '高' if x > 3 else '低')  
print(df)  

输出:

   A   B A_formatted0  1  10          低  
1  2  20          低  
2  3  30          低  
3  4  40          高  
4  5  50          高  

2. 使用 apply 方法

apply 方法可以应用于整个 DataFrame 或特定的列,根据自定义函数进行格式化。

示例代码
# 创建示例 DataFrame  
df = pd.DataFrame({  
    'A': [1, 2, 3, 4, 5],    'B': [10, 20, 30, 40, 50]})  
  
# 自定义格式化函数  
def format_value(value):  
    if value > 30:        return '高'  
    elif value > 20:        return '中'  
    else:        return '低'  
  
# 使用 apply 方法进行格式化  
df['B_formatted'] = df['B'].apply(format_value)  
print(df)  

输出:

   A   B B_formatted0  1  10          低  
1  2  20          低  
2  3  30          中  
3  4  40          高  
4  5  50          高  

3. 使用样式功能

Pandas 提供了样式功能,可以对 DataFrame 进行更复杂的格式化,包括颜色、字体等。

示例代码
# 创建示例 DataFrame  
df = pd.DataFrame({  
    'A': [1, 2, 3, 4, 5],    'B': [10, 20, 30, 40, 50]})  
  
# 自定义样式函数  
def highlight_values(value):  
    if value > 30:        return 'background-color: yellow'    elif value > 20:        return 'background-color: orange'    else:        return 'background-color: green'  
# 应用样式  
styled_df = df.style.applymap(highlight_values)  
styled_df  

输出:

   A   B0  1  10  # 绿色背景  
1  2  20  # 绿色背景  
2  3  30  # 橙色背景  
3  4  40  # 黄色背景  
4  5  50  # 黄色背景  

4. 结合使用条件表达式和样式功能

可以将条件表达式和样式功能结合使用,实现更复杂的格式化效果。

示例代码
# 创建示例 DataFrame  
df = pd.DataFrame({  
    'A': [1, 2, 3, 4, 5],    'B': [10, 20, 30, 40, 50]})  
  
# 自定义样式函数  
def highlight_values(value):  
    if value > 30:        return 'background-color: yellow'    elif value > 20:        return 'background-color: orange'    else:        return 'background-color: green'  
# 应用样式  
styled_df = df.style.applymap(highlight_values)  
styled_df  

输出:

   A   B0  1  10  # 绿色背景  
1  2  20  # 绿色背景  
2  3  30  # 橙色背景  
3  4  40  # 黄色背景  
4  5  50  # 黄色背景  

总结

通过条件表达式、apply 方法和样式功能,可以灵活地对 DataFrame 进行条件格式化,以便更直观地展示数据特征。以下是一个完整的示例代码,展示了如何结合使用这些方法:

import pandas as pd  
  
# 创建示例 DataFrame  
df = pd.DataFrame({  
    'A': [1, 2, 3, 4, 5],    'B': [10, 20, 30, 40, 50]})  
  
# 使用条件表达式进行格式化  
df['A_formatted'] = df['A'].apply(lambda x: '高' if x > 3 else '低')  
print("使用条件表达式进行格式化:")  
print(df)  
  
# 自定义格式化函数  
def format_value(value):  
    if value > 30:        return '高'  
    elif value > 20:        return '中'  
    else:        return '低'  
  
# 使用 apply 方法进行格式化  
df['B_formatted'] = df['B'].apply(format_value)  
print("\n使用 apply 方法进行格式化:")  
print(df)  
  
# 自定义样式函数  
def highlight_values(value):  
    if value > 30:        return 'background-color: yellow'    elif value > 20:        return 'background-color: orange'    else:        return 'background-color: green'  
# 应用样式  
styled_df = df.style.applymap(highlight_values)  
print("\n应用样式:")  
styled_df  
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

司南锤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值