You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于DataFrame value_counts结果用FPDF条件生成预设PDF文本?

实现基于Pandas统计结果的FPDF条件文本输出

这个需求完全可以实现,以下是具体的实现步骤和代码示例:

1. 处理Pandas统计数据,确定最高计数的变速箱类型

首先从你的DataFrame中提取transmission列的计数结果,找到计数最高的类别。假设统计结果已存储在trans_counts DataFrame中(对应你提供的示例数据),可以通过idxmax()方法直接获取目标类别:

import pandas as pd

# 示例统计DataFrame
data = {
    'transmission': ['Automatic', 'Manual', 'Other', 'Semi-Auto'],
    'count': [22319, 61308, 10, 24903]
}
trans_counts = pd.DataFrame(data).set_index('transmission')

# 获取计数最高的变速箱类型
top_transmission = trans_counts['count'].idxmax()

2. 结合FPDF实现条件文本输出

修正你原代码中的语法错误(is ==为无效语法,直接用==即可),将条件判断逻辑整合到PDF生成流程中:

from fpdf import FPDF
import os
from datetime import datetime

# 初始化PDF对象
pdf = FPDF()
filename = 'transmission_report.pdf'

# 第一页内容(示例,可根据实际需求修改)
pdf.add_page()
pdf.set_font("Arial", size=12)
pdf.cell(200, 10, txt="车辆变速箱统计报告", ln=True, align='C')

# 判断最高计数是否为Semi-Auto,若是则添加第二页文本
if top_transmission == 'Semi-Auto':
    dummytext = "The most common transmission in the US is Semi-Auto because blabla\n"
    dummytext += "line 2\n"
    dummytext += "line 3"
    
    # 添加第二页并写入文本
    pdf.add_page()
    pdf.multi_cell(0, 5, dummytext)

# 输出PDF文件
pdf.output(filename, 'F')

关键说明

  • idxmax()方法会返回Series最大值对应的索引,这里就是计数最高的变速箱类型;
  • 条件判断直接对比top_transmission与"Semi-Auto",满足条件时执行添加第二页的逻辑;
  • multi_cell()方法支持自动换行,适合输出多行文本内容。

内容的提问来源于stack exchange,提问作者user16239103

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 23:01:23