我有这样一个Dataframe,
val df = Seq((12,14,56,22,18),(11,54,83,91,12)).toDF("individual_rule_1_professional",
"individual_rule_2_amateur","team_rule_3_professional","team_rule_4_amateur","total")
我想把以单个开始,以业余结束的列的规则数提取到一个数组中。所以在本例中,它将返回[2],因为在Dataframe中只有一列以individual开头,以Aboutery结尾,而该列的规则号是2。
我该怎么做?
非常感谢!祝你有美好的一天。
2条答案
按热度按时间bvhaajcl1#
下面是另一种解决方案:
与@phlantorvert答案的区别:
输出an
Array[Int]
而不是Array[String]
避免任何问题,如果“个人”一词后面没有一个_
字符(但仍假定分隔符为_
字符)。这更符合您的规范,即列名应为“…start with”和“…end with”pprl5pva2#
可以使用
df.columns
```df.columns
// Array[String] = Array(individual_rule_1_professional, individual_rule_2_amateur, team_rule_3_professional, team_rule_4_amateur, total)
df.columns.filter(.matches("individual.*amateur")).map(.replaceAll("[^\d]", ""))
// Array[String] = Array(2)