【发布时间】:2021-05-04 13:59:56
【问题描述】:
假设我有一个像这样的 pandas 数据框
| Date | Val1 | Val2 | Val 2 Greater than prev |
|---|---|---|---|
| 2020-11-13 | 4 | 5 | NaN |
| 2020-11-14 | 6 | 9 | yes |
我可以写什么 udf 来正确填充 Val 2 Greater than prev 行?
我知道如何使用 for 循环和索引访问来解决这个问题,但假设 udf 更容易。
【问题讨论】:
-
这里不需要 udf。 Val 2 和 val 1 之间的简单比较应该足够
when类似F.when(F.col("Val 2")>F.col("Val 1"),"yes") -
@anky 我错误地陈述了我的问题并进行了编辑。我的意思是说我需要一个在当前行大于前一行而不是列时返回的函数。
-
那么可以使用
lead或lag函数进行比较。见pyspark, Compare two rows in dataframe 和Compare Value of Current and Previous Row in Spark
标签: pandas dataframe apache-spark pyspark apache-spark-sql