亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Pyspark-用不同的列值替換列中的空值

Pyspark-用不同的列值替換列中的空值

紅糖糍粑 2023-10-25 11:02:46
如何用category其中的不同值填充這一列空值?+---++--------+----------+| id||category|      Date|+---+---------+----------+| A1|     Null|2010-01-02|| A1|     Null|2010-01-03|| A1|    Nixon|2010-01-04|| A1|     Null|2010-01-05|| A9|     Null|2010-05-02|| A9|  Leonard|2010-05-03|| A9|     Null|2010-05-04|| A9|     Null|2010-05-05|+---+---------+----------+所需的數據框:+---++--------+----------+| id||category|      Date|+---+---------+----------+| A1|    Nixon|2010-01-02|| A1|    Nixon|2010-01-03|| A1|    Nixon|2010-01-04|| A1|    Nixon|2010-01-05|| A9|  Leonard|2010-05-02|| A9|  Leonard|2010-05-03|| A9|  Leonard|2010-05-04|| A9|  Leonard|2010-05-05|+---+---------+----------+我試過:w = Window().partitionBy("ID").orderBy("Date")df = df.withColumn("category", F.when(col("category").isNull(), col("category")\.distinct().over(w))\.otherwise(col("category")))我也嘗試過:df = df.fillna({'category': col('category').distinct()})我也嘗試過:df = df.withColumn('category', when(df.category.isNull(), df.category.distinct()).otherwise(df.category))
查看完整描述

1 回答

?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

您可以使用first()參數ignorenullsas True。

另外,請rowsBetween(-sys.maxsize, sys.maxsize)在窗戶上使用。


from pyspark.sql import functions as F

from pyspark.sql.functions import *

from pyspark.sql.window import Window

import sys


w = Window().partitionBy("id").orderBy("Date")


df.withColumn("new", F.first('category', True).over(w.rowsBetween(-sys.maxsize, sys.maxsize)))\

        .orderBy("id", "Date").show()


+---+--------+----------+

| id|category|      Date|

+---+--------+----------+

| A1|   Nixon|2010-01-02|

| A1|   Nixon|2010-01-03|

| A1|   Nixon|2010-01-04|

| A1|   Nixon|2010-01-05|

| A9| Leonard|2010-05-02|

| A9| Leonard|2010-05-03|

| A9| Leonard|2010-05-04|

| A9| Leonard|2010-05-05|

+---+--------+----------+


查看完整回答
反對 回復 2023-10-25
  • 1 回答
  • 0 關注
  • 183 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號