您能否根據 Pyspark 中的條件洗掉列
我要洗掉列的條件:
df_train.groupby().sum() == 0
這是熊貓中的一個快速示例:
import pandas as pd
#create dataframe
df = pd.DataFrame(np.array([[0,2,1],[0,2,8],[0,6,2]]), columns=['a','b', 'c'])
#remove columns with only zero value
df.loc[:,df.sum(axis=0) != 0 ]
如果有多種方式,哪一種更受歡迎?
uj5u.com熱心網友回復:
如果我理解正確,您想洗掉該列的總和等于 0 的所有列。
您可以先計算每列的總和,然后過濾列串列 wheresum = 0并將該串列傳遞給df.drop()方法:
from pyspark.sql import functions as F
df = spark.createDataFrame([(0, 1, 2), (-1, 3, -6), (1, 4, 0)], ["col1", "col2", "col3"])
sums = df.select(*[F.sum(c).alias(c) for c in df.columns]).first()
cols_to_dop = [c for c in sums.asDict() if sums[c] == 0]
df = df.drop(*cols_to_dop)
df.show()
# ---- ----
#|col2|col3|
# ---- ----
#| 1| 2|
#| 3| -6|
#| 4| 0|
# ---- ----
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/383915.html
