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

如何在Julia的DataFrame中不区分大小写搜索指定列的特定词汇

在RDatasets中不区分大小写查找数据集

我在使用RDatasets包查找特定数据集时遇到了麻烦——这个包里包含763个带标识的数据集,很难确认目标数据集是否存在。比如我知道有一个食品相关的数据集,但不清楚确切名称,第一次搜索小写的"food"没有返回结果:

using RDatasets, DataFrames

# 调用包内所有数据集的信息
Rdatasets = RDatasets.datasets();

Rdatasets[occursin.("food", Rdatasets.Title), :]
# 0×5 DataFrame
#  Row │ Package   Dataset   Title   Rows   Columns
#      │ String15  String31  String  Int64  Int64
# ─────┴────────────────────────────────────────────

直到我尝试搜索大写的"Food"才找到目标数据集:

Rdatasets[occursin.("Food", Rdatasets.Title), :]
# 1×5 DataFrame
#  Row │ Package   Dataset     Title                              Rows   Columns
#      │ String15  String31    String                             Int64  Int64
# ─────┼─────────────────────────────────────────────────────────────────────────
#    1 │ Ecdat     BudgetFood  Budget Share of Food for Spanish…  23972        6

反复调整关键词的大小写非常繁琐,以下是两种可以在Rdatasets的Title列中不区分大小写查找包含"food"词汇的方法:

方法1:统一转换文本大小写后匹配

将Title列的所有文本和搜索关键词统一转换为小写(或大写),再使用occursin进行匹配,彻底消除大小写差异的影响:

using RDatasets, DataFrames

rdatasets = RDatasets.datasets()

# 统一转为小写后匹配
food_datasets = rdatasets[occursin.(lowercase("food"), lowercase.(rdatasets.Title)), :]

方法2:使用正则表达式的不区分大小写模式

利用Julia正则表达式的(?i)标记开启不区分大小写模式,写法更简洁:

# 通过正则表达式忽略大小写匹配
food_datasets = rdatasets[occursin.(r"(?i)food", rdatasets.Title), :]

两种方法都能直接筛选出所有标题中包含"food"(无论大小写形式)的数据集,无需反复尝试不同的关键词大小写。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 06:32:10