如何从列表中重命名 DataFrame 的列

伊蒙台梭利

我有一个这样的数据框:

单元格 1 单元格 2
单元格 3 单元格 4

和这样的列表:

dog, bulldog

cat, persian

我想创建一个函数来查找列表中列的名称并将其替换为第二个元素(bulldog, persian)

所以最终的结果应该是:

| bulldog  | persian  |
| -------- | -------- |
| Cell 1   | Cell 2   |
| Cell 3   | Cell 4   |
慈善家

您需要在显示的预定义列表中查找原始列。从中创建一个更容易,Map因此可以执行查找:

val list: List[(String, String)] = List(("dog", "bulldog"), ("cat", "persian"))

val columnMap = list.toMap

// columnMap: scala.collection.immutable.Map[String,String] = Map(dog -> bulldog, cat -> persian)


val originalCols = df.columns
val renamedCols = originalCols.map{
  c => if (columnMap.keys.toArray.contains(c)) s"${c} as ${columnMap.getOrElse(c, "")}"
       else c
}

println(renamedCols)

// renamedCols: Array[String] = Array(dog as bulldog, cat as persian)

df.selectExpr(renamedCols: _*).show(false)

// +-------+-------+
// |bulldog|persian|
// +-------+-------+
// |Cell 1 |Cell 2 |
// |Cell 1 |Cell 2 |
// +-------+-------+

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

重命名列表中的dataframe列

如何在循环中重命名 Pandas DataFrame 中的列?

重命名Pandas DataFrame中未命名的多索引列

如何使用字典键和值重命名Pandas DataFrame中的列?

如何在Python中使用熊猫重命名DataFrame中的列

如何重命名熊猫中数据框列表的列?

动态重命名PySpark DataFrame中的多个列

重命名Spark DataFrame中的嵌套结构列

无法重命名pandas DataFrame中的第一列

根据相邻列名重命名 pd.DataFrame 中的列

Python 重命名 Pandas DataFrame 列

重命名数字的Pandas DataFrame列

续集:如何重命名包含中的列

如何使用lapply根据列中的值重命名列表中的数据框

如何使用正则表达式重命名 Pandas DataFrame 的列?

如何添加两列DataFrame并用前缀名称重命名

如何使用 bash 添加两列 DataFrame 并使用前缀名称重命名

如何使用 bash 添加两列 DataFrame 并使用前缀名称重命名

如何展开DataFrame列中的列表?

使用`lapply`重命名列表中的选定列

重命名嵌套列表和行绑定中的列

重命名数据框列表中的所有列

重命名列表中Data.frame的列

使用purrr重命名小标题列表中的不同列

Python / Pandas-如何在DataFrame中重命名列标题,而又不丢失列标题中的现有数据?

如何摆脱熊猫DataFrame中的“未命名:0”列?

如何在TFS中重命名迭代板视图的列?如何重命名默认积压?

Spark DataFrame并重命名多列(Java)

重命名python DataFrame列值的子字符串