自学内容网 自学内容网

`style.format()` 方法的具体用法和示例

style.format() 方法是 pandas 中用于定制 DataFrame 显示格式的一个强大工具。它允许用户对 DataFrame 中的数值进行格式化,以便更好地展示数据。以下是 style.format() 方法的具体用法和示例。

基本用法

style.format() 方法的基本语法如下:

DataFrame.style.format(formatters=None, na_rep='NaN', escape='html', **kwargs)
  • formatters: 可以是一个字典,键为列名,值为格式字符串或格式化函数。
  • na_rep: 用于表示缺失值的字符串,默认是 'NaN'
  • escape: 是否对 HTML 进行转义,默认为 'html'
  • kwargs: 其他参数。

示例

1. 基本格式化
import pandas as pd

# 创建 DataFrame
df = pd.DataFrame({
    "日期": ["2022-10-01", "2022-11-11", "2022-12-12"],
    "单价": [1099.5, 8790.0, 12.55],
    "数量": [1, 3, 1200],
})

# 将日期列转换为 datetime 类型
df["日期"] = pd.to_datetime(df["日期"])

# 定义格式化规则
col_format = {
    "日期": "{:%Y/%m/%d}",  # 日期格式
    "单价": "¥{:,.2f}",     # 单价格式
    "数量": "{:,} 件"        # 数量格式
}

# 应用格式化
formatted_df = df.style.format(col_format)
formatted_df
2. 使用自定义格式化函数

你可以使用自定义函数来格式化数据。例如,下面的示例将单价格式化为带有颜色的字符串。

def highlight_positive(val):
    color = 'red' if val > 1000 else 'black'
    return f'color: {color}'

# 应用自定义格式化
formatted_df = df.style.format({
    "单价": lambda x: f'¥{x:,.2f}'
}).applymap(highlight_positive, subset=["单价"])
formatted_df
3. 处理缺失值

你可以使用 na_rep 参数来指定缺失值的显示格式。

# 创建包含缺失值的 DataFrame
df_with_nan = pd.DataFrame({
    "日期": ["2022-10-01", None, "2022-12-12"],
    "单价": [1099.5, None, 12.55],
    "数量": [1, 3, None],
})

# 定义格式化规则
col_format = {
    "日期": "{:%Y/%m/%d}",
    "单价": "¥{:,.2f}",
    "数量": "{:,} 件"
}

# 应用格式化,指定缺失值的显示格式
formatted_df = df_with_nan.style.format(col_format, na_rep='缺失值')
formatted_df
4. 多种格式化

你可以在同一个 DataFrame 中对不同列使用不同的格式化规则。

# 创建 DataFrame
df = pd.DataFrame({
    "日期": ["2022-10-01", "2022-11-11", "2022-12-12"],
    "单价": [1099.5, 8790.0, 12.55],
    "数量": [1, 3, 1200],
})

# 定义格式化规则
col_format = {
    "日期": "{:%Y/%m/%d}",
    "单价": "¥{:,.2f}",
    "数量": "{:,.0f} 件"  # 数量不显示小数
}

# 应用格式化
formatted_df = df.style.format(col_format)
formatted_df

总结

style.format() 方法是 pandas 中一个非常实用的工具,能够帮助用户以更直观的方式展示数据。通过灵活使用格式化字符串和自定义函数,用户可以根据需要调整 DataFrame 的显示效果,使数据分析和报告更加美观和易于理解。


原文地址:https://blog.csdn.net/weixin_43822401/article/details/142549763

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!