當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python PySpark DataFrame drop方法用法及代碼示例

PySpark DataFrame 的 drop(~) 方法返回一個新的 DataFrame,其中刪除了指定的列。

注意

嘗試刪除不存在的列不會引發錯誤 - 將返回原始的DataFrame。

參數

1.*cols | stringColumn

要刪除的列。

返回值

一個新的 PySpark 數據幀。

例子

考慮以下PySpark DataFrame:

df = spark.createDataFrame([["Alex", 25, True], ["Bob", 30, False]], ["name", "age", "is_married"])
df.show()



+----+---+----------+
|name|age|is_married|
+----+---+----------+
|Alex| 25|      true|
| Bob| 30|     false|
+----+---+----------+

刪除 PySpark DataFrame 的單列

要刪除 name 列:

df.drop("name").show()



+---+----------+
|age|is_married|
+---+----------+
| 25|      true|
| 30|     false|
+---+----------+

請注意,原始df 保持不變。

我們還可以使用 sql.functions 將該列作為 Column 對象提供:

import pyspark.sql.functions as F
df.drop(F.col("name")).show()



+---+----------+
|age|is_married|
+---+----------+
| 25|      true|
| 30|     false|
+---+----------+

刪除 PySpark DataFrame 的多列

要刪除列 nameage

df.drop("name", "age").show()



+----------+
|is_married|
+----------+
|      true|
|     false|
+----------+
警告

我們無法通過提供多個 Column 對象來刪除列:

import pyspark.sql.functions as F
df.drop(F.col("name"), F.col("age")).show()



TypeError: each col in the param list should be a string

刪除給定列標簽列表的列

要刪除給定列標簽列表的列:

cols = ["name", "age"]
df.drop(*cols).show()



+----------+
|is_married|
+----------+
|      true|
|     false|
+----------+

這裏,*cols 將列表轉換為位置參數。

相關用法


注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 PySpark DataFrame | drop method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。