【问题标题】:Ffill and interpolate koalas dataframe填充和插入考拉数据框
【发布时间】:2020-08-03 04:37:34
【问题描述】:

是否可以像这样在 Koalas 数据框中插入和填充不同的列?

%%spark -s sparkenv2

kdf = ks.DataFrame({
    'id':[1,2,3,4],
    'A': [None, 3, None, None],
    'B': [2, 4, None, 3],
    'C': [99, None, None, 1],
    'D': [0, 1, 5, 4]
    },
    columns=['id','A', 'B', 'C', 'D'])

kdf['A']=kdf['A'].ffill()
kdf['B']=kdf['B'].interpolate()

【问题讨论】:

    标签: apache-spark interpolation missing-data fill spark-koalas


    【解决方案1】:

    For ffill, this is taken from John Paton's blog

    from pyspark.sql import Window
    from pyspark.sql.functions import last
    
    spark_df = kdf.to_spark()
    
    # define the window
    window = Window.orderBy('id').rowsBetween(-sys.maxsize, 0)
    
    # define the forward-filled column
    filled_column = last(spark_df['A'], ignorenulls=True).over(window)
    
    # do the fill
    spark_df_filled = spark_df.withColumn('A_filled', filled_column)
    

    我对插值没有答案 - 仍在尝试自己找到它。

    PS - 您可以通过更改 rowsBetween(0, max.size) 并使用 first() 而不是 last() 来切换到回填。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 2011-04-21
      • 1970-01-01
      相关资源
      最近更新 更多