Ask me what skills you need
What are you building?
Tell me what you're working on and I'll find the best agent skills for you.
提取指定类别列并统计各类别数量与占比,生成高分辨率的柱状图、饼图等组合可视化报告,适用于分类数据的分布情况分析。
Step1 提取目标类别数据,清洗无效标签,并统计各类别数量与占比。
import pandas as pd
def calculate_distribution(data, target_col='类别'):
# 检查目标列是否存在
if target_col not in data.columns:
raise ValueError(f'未找到指定的类别字段: {target_col}')
# 提取数据,清洗无效标签(如'--'、'代码'等占位符)
category_data = data[target_col].dropna().replace(['--', '代码'], pd.NA).dropna()
# 统计各类别数量并计算占比
counts = category_data.value_counts()
proportions = (counts / counts.sum()) * 100
# 实用技巧:生成包含总计行的统计表
# summary = counts.copy()
# summary.loc['总计'] = counts.sum()
return counts, proportions
Step2 生成基础可视化(双轴图:柱状图+占比曲线),并保存为高分辨率图片。
import matplotlib.pyplot as plt
def generate_and_save_basic_chart(counts, proportions, title='各类别数量分布', output_path='category_distribution.png'):
# 设置中文字体避免乱码
plt.rcParams['font.sans-serif'] = ['SimHei', 'WenQuanYi Zen Hei', 'Noto Sans CJK JP', 'DejaVu Sans']
plt.rcParams['axes.unicode_minus'] = False
fig, ax1 = plt.subplots(figsize=(10, 6))
# 绘制柱状图
bars = ax1.bar(counts.index, counts.values, color='skyblue', edgecolor='black')
for bar in bars:
height = bar.get_height()
npx skills add OpenSenseNova/SenseNova-Skills --skill category-statisticsHow clear and easy to understand the SKILL.md instructions are, rated from 1 to 5.
Clear and well structured, with only minor parts that might need a second read.
How directly an agent can act on the SKILL.md instructions, rated from 1 to 5.
Mostly actionable with clear steps; only a few small gaps remain.