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

如何在pandas中将金额列数值按不同布尔标记列归属统计

pandas实现各分类标记总承付金额统计及绘图

步骤1:导入所需库

import pandas as pd
import matplotlib.pyplot as plt

步骤2:读取原始数据

如果你的数据存储为csv格式,执行以下代码读取,其他格式可对应调整pandas读取方法:

df = pd.read_csv("你的数据文件路径.csv")

步骤3:计算各分类标记对应的总承付金额

无需手动输入所有标记列名,代码会自动识别所有标记列完成计算:

# 自动筛选出所有分类标记列(排除唯一标识和金额字段)
flag_cols = [col for col in df.columns if col not in ["Unique_ID", "Dollars_Obligated"]]

# 遍历每个标记列,统计值为Yes的行对应的总承付金额
res = []
for flag in flag_cols:
    # 自动处理空格、大小写差异,避免Yes/YES/yes不统一的问题
    total_amount = df[df[flag].str.strip().str.upper() == "YES"]["Dollars_Obligated"].sum()
    res.append({"分类标记": flag, "总承付金额": total_amount})

res_df = pd.DataFrame(res)

你提供的示例数据执行后得到的结果如下,可用于验证逻辑正确性:

分类标记总承付金额
Veteran_Flag145768
Woman_Owned_Flag824999

步骤4:绘制柱状图

# 设置画布大小,适配十余种分类的展示
plt.figure(figsize=(14, 7))
# 绘制柱状图
plt.bar(res_df["分类标记"], res_df["总承付金额"], color="#2e86ab")
# 旋转x轴标签避免文字重叠
plt.xticks(rotation=45, ha="right")
plt.xlabel("小型企业分类标记", fontsize=12)
plt.ylabel("总承付金额", fontsize=12)
plt.title("各分类标记对应总承付金额", fontsize=14)
# 自动调整布局,避免标签被截断
plt.tight_layout()
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 13:24:06