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

使用pandas读取Excel文件并按三类分类,无法实现目标输出逻辑

解决Excel技能分类与pandas读取问题

一、先搞定pandas读取Excel的问题

首先确保安装必要依赖:

pip install pandas openpyxl xlrd

基础读取代码:

import pandas as pd

# 读取Excel,指定sheet名(多sheet时用索引sheet_name=0也可以)
df = pd.read_excel("你的文件路径.xlsx", sheet_name="Sheet1")

# 先确认读取是否正确
print(df.head())
print("数据列名:", df.columns.tolist())

如果读取失败,排查这几点:

  • 用绝对路径替代相对路径,避免路径识别错误
  • 确保Excel文件没被其他程序占用
  • 旧版xls格式需安装xlrd==1.2.0(新版xlrd不再支持xls)
  • 核对sheet名称是否准确,或者直接用索引定位

二、实现技能分类逻辑

方法1:精准匹配(适合已知完整技能列表)

先定义三类技能的映射字典,替换成你的实际技能:

skill_categories = {
    "technical": ["Python", "SQL", "Java", "机器学习", "数据建模"],
    "functional": ["需求分析", "项目管理", "流程优化", "客户对接"],
    "soft": ["沟通能力", "团队协作", "问题解决", "领导力"]
}

def categorize_skill(skill):
    for category, skills in skill_categories.items():
        if skill in skills:
            return category
    return "未分类"  # 处理不在列表里的技能

# 把分类结果新增到DataFrame中
df["category"] = df["技能列名称"].apply(categorize_skill)

方法2:模糊匹配(处理技能名称有变体的情况)

比如"Python开发"和"Python编程"这类近似技能,用模糊匹配:

from fuzzywuzzy import fuzz

def categorize_skill_fuzzy(skill):
    threshold = 80  # 匹配阈值,数值越高匹配越严格
    for category, skills in skill_categories.items():
        for s in skills:
            if fuzz.partial_ratio(skill.lower(), s.lower()) >= threshold:
                return category
    return "未分类"

# 先安装依赖
# pip install fuzzywuzzy python-Levenshtein

df["category"] = df["技能列名称"].apply(categorize_skill_fuzzy)

方法3:正则匹配(按关键词分类)

针对有规律的技能名称,用关键词正则匹配:

import re

def categorize_skill_regex(skill):
    skill_lower = skill.lower()
    if re.search(r"python|sql|java|机器学习|开发|编程|数据库", skill_lower):
        return "technical"
    elif re.search(r"需求|项目管理|流程|业务", skill_lower):
        return "functional"
    elif re.search(r"沟通|协作|领导力|团队", skill_lower):
        return "soft"
    else:
        return "未分类"

df["category"] = df["技能列名称"].apply(categorize_skill_regex)

三、验证输出

分类完成后,查看结果:

# 查看前几行分类结果
print(df[["技能列名称", "category"]].head())
# 统计各类别数量
print(df["category"].value_counts())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 01:12:50