Python 如何使用列号引用而不是列名来删除列或重新排序

Python 如何使用列号引用而不是列名来删除列或重新排序,python,pyspark,Python,Pyspark,我对PythonSpark还不熟悉,因为我刚刚开始学习python,所以如果这个问题真的很模糊的话,我会解释一下 如何使用列号引用而不是列名删除列或重新排序python spark数据帧?我的col名称很长,而且我有很多col,使用col名称很乏味 我想变成 Data = Data.drop("070_thing", "230_anglething", "152_magnetthing", "200_status_thing", "155_thing") 进入: 也可以重新排序,以代替:

我对PythonSpark还不熟悉,因为我刚刚开始学习python,所以如果这个问题真的很模糊的话,我会解释一下

如何使用列号引用而不是列名删除列或重新排序python spark数据帧?我的col名称很长,而且我有很多col,使用col名称很乏味

我想变成

 Data = Data.drop("070_thing", "230_anglething", "152_magnetthing", "200_status_thing", "155_thing")
进入:

也可以重新排序,以代替:

 df = df.select("id","name","time","city")
我想提出:

 df = df.select(4, 3, 2, 1)

谢谢

您可以使用df.columns:

columns = Data.columns
Data.select(columns[0], columns[1])
或:

columns = Data.columns
Data.select(columns[0], columns[1])
  from operators import itemgetter

  df_getter = lambda cols: list(itemgetter(**cols, columns))
  data.select(*df_getter((1, 2, 3)))