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

如何使用R从数据框的分类列中提取竖线前的首个主行业

嘿,这个需求很常见,用pandas就能轻松搞定!咱们直接看具体的实现方法:

解决方案

假设你的数据框叫df,分类列的列名为category,这里提供两种常用且可靠的方法来提取第一个主行业:

方法1:使用str.split()拆分字符串

这是最直观的方式,通过竖线|拆分每个单元格的字符串,然后取拆分后的第一个元素:

import pandas as pd

# 构造示例数据(模拟你的数据结构)
data = {
    "category": [
        "Application Platforms|Real Time|Social Network Media Apps",
        "Games|Mobile Curated Web Software",
        "Games|Software Networking",
        "Real Estate|Web Hosting",
        "Biotechnology Analytics Mobile E-Commerce Entertainment"  # 兼容无竖线的情况
    ]
}
df = pd.DataFrame(data)

# 提取第一个主行业,生成新列`main_category`
df["main_category"] = df["category"].str.split("|").str[0]

# 查看处理结果
print(df)

这个方法的优势是自动兼容没有竖线的单元格(直接返回原字符串),不需要额外处理边界情况。

方法2:使用正则表达式str.extract()

如果你习惯用正则匹配,也可以精准提取竖线之前的内容(或整个字符串如果没有竖线):

df["main_category"] = df["category"].str.extract(r"^([^|]+)", expand=False)

正则^([^|]+)的逻辑是:从字符串开头(^)开始,匹配所有非竖线的字符([^|]+),正好对应第一个主行业的内容。

最终效果示例

处理后的数据框会新增main_category列,结果如下:

categorymain_category
Application PlatformsReal Time
GamesMobile Curated Web Software
GamesSoftware Networking
Real EstateWeb Hosting
Biotechnology Analytics Mobile E-Commerce EntertainmentBiotechnology Analytics Mobile E-Commerce Entertainment

这样就完美满足你的需求啦!

内容的提问来源于stack exchange,提问作者Suraj Kumar Talreja

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:27:30