如何过滤以某物开始并以某物结束的Dataframe列

kse8i1jr  于 2021-05-24  发布在  Spark
关注(0)|答案(2)|浏览(351)

我有这段代码,目前工作的预期

val rules_list = df.columns.filter(_.startsWith("rule")).toList

但是,这包括一些我不想要的列。我该如何添加第二个过滤器,以便总过滤器是“以‘rule’开头并以任意整数值结尾的列”
所以它应该在列列表中返回“rule\u 1”,而不是“rule\u 1\u modified”
谢谢,祝你今天愉快!

4szc88ey

4szc88ey1#

您可以像这样使用python的regex模块

import re

columns = df.columns;
rules_list = [];
    for col_name in range(len(columns)):
      rules_list += re.findall('rule[_][0-9]',columns[col_name])
print(rules_list)
huwehgph

huwehgph2#

只需将正则表达式添加到筛选器中:

val rules_list = data.columns.filter(c => c.startsWith("rule") && c.matches("^.*\\d$")).toList

相关问题