过滤两个不同日期范围之间的pyspark数据框行

Sameeksha Sohal

我有一个pyspark数据框,其中包含“ id”和日期列“ parsed_date”(dtypes:日期,格式:YYYY-mm-dd)。我创建了一个函数,该函数可以为我提供给定日期范围内每一天的ID计数。

功能返回2个数据帧。df1的行距日期范围为±1周,而df2的行距给定日期为±2周,方法如下:

df1应该过滤范围1:(day-t,day + t)中的行df2应该过滤范围2中的行:(day-2 t,day-t).append(day + t,day + 2 t)

这是我一直用于创建具有所需日期范围的df1的代码,但我不知道为df2附加/合并日期范围

def part_1(df, day, t):
"""
Example usage: df_list = part_1(df, '2017-12-18', 2)
Returns a list of 2 dataframes.
"""
h1_df1 = (df.filter(f"parsed_date between '{day}' - interval {t} days and '{day}' + interval {t} days")
         .withColumn('count_before', F.count('id').over(Window.partitionBy('parsed_date')))
         .orderBy('parsed_date')
      )


h1_df2 = (df.filter(f"parsed_date between '{day}' - interval {t*2} days and '{day}' - interval {t} days").concat(f"parsed_date between ('{day}' + interval {t} days and '{day}' + interval {t*2} days")
         .withColumn('count_after', F.count('id').over(Window.partitionBy('parsed_date')))
         .orderBy('parsed_date')
      )


return [h1_df1, h1_df2]

调用part_1时h1_df1的输出(df,'2017-12-18',2)

+-------+-----------+------------+
|     id|parsed_date|count_before|
+-------+-----------+------------+
|1471783| 2017-12-16|           2|
|1471885| 2017-12-16|           2|
|1472928| 2017-12-17|           2|
|1476917| 2017-12-17|           2|
|1477469| 2017-12-18|           1|
|1478190| 2017-12-19|           4|
|1478570| 2017-12-19|           4|
|1481415| 2017-12-19|           4|
|1472592| 2017-12-19|           4|
|1474023| 2017-12-20|           1|
+-------+-----------+------------+

调用part_1时h2_df1的预期结果(df,'2017-12-18',2)

 +-------+-----------+------------+
    |     id|parsed_date| count_after|
    +-------+-----------+------------+
    |1471783| 2017-12-14|           1|
    |1471885| 2017-12-16|           3|
    |1472928| 2017-12-16|           3|
    |1476917| 2017-12-16|           3|
    |1477469| 2017-12-20|           2|
    |1478190| 2017-12-20|           2|
    |1478570| 2017-12-21|           2|
    |1481415| 2017-12-21|           2|
    |1472592| 2017-12-22|           2|
    |1474023| 2017-12-22|           2|
    +-------+-----------+------------+

我很想获得有关创建h2_df1的帮助。虽然我尝试了一下,但是它不起作用。

请帮忙!

麦克

您可以使用or而不是来组合两个过滤条件concat

h1_df2 = (df.filter(f"""
    (parsed_date between '{day}' - interval {t*2} days and '{day}' - interval {t} days) 
    or
    (parsed_date between '{day}' + interval {t} days and '{day}' + interval {t*2} days)
""")
         .withColumn('count_after', F.count('id').over(Window.partitionBy('parsed_date')))
         .orderBy('parsed_date')
      )

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP,MySQL如何对两个不同日期范围内的数据求和

来自分类Dev

如何组合来自两个不同日期范围 sql 的两个不同计数

来自分类Dev

选择两个日期之间的Pandas数据框行

来自分类Dev

如何获取数据框中两个重叠日期之间的范围?

来自分类Dev

合并具有不同日期时间索引的两个数据框

来自分类Dev

熊猫合并具有不同日期和列的两个数据框

来自分类Dev

合并具有不同日期时间索引的两个数据框

来自分类Dev

如何基于两个日期之间过滤的时间创建新的数据框

来自分类Dev

如何在JavaScript中获取两个不同日期之间的工作日

来自分类Dev

从两个不同日期之间的mysql查询中获取最大和最小小时

来自分类Dev

从具有不同日期的两个DataFrame绘制数据

来自分类Dev

R-获取两个相同日期之间的行?

来自分类Dev

PHP代码在两个日期之间过滤数据

来自分类Dev

MySQL查询返回两个日期范围之间的行

来自分类Dev

过滤变量以连接两个不同维度的数据框

来自分类Dev

两个日期之间的Python每周数据框

来自分类Dev

将两个日期之间的行生成到R中的数据框中

来自分类Dev

按日期添加两个大小不同的数据框

来自分类Dev

根据数据框中两个不同列之间的匹配来删除行

来自分类Dev

在两个日期之间过滤MYSQL

来自分类Dev

Python按日期范围(两个日期之间)过滤DBF

来自分类Dev

Python按日期范围(两个日期之间)过滤DBF

来自分类Dev

选择两个日期之间的数据集行

来自分类Dev

PySpark - 如何根据列中的两个值从数据框中过滤出连续的行块

来自分类Dev

如何从Android中以两个不同日期从MySQL获取数据并在多列ListView中显示

来自分类Dev

两个如何比较来自两个不同数据框的熊猫的两行

来自分类Dev

如何在两个熊猫数据框之间循环,以根据数据框1中给出的值选择要从数据框2中提取的行范围

来自分类Dev

获取日期范围内两个日期之间的DAYS数据

来自分类Dev

SQL查询按日期范围查找介于两个日期之间的所有数据

Related 相关文章

  1. 1

    PHP,MySQL如何对两个不同日期范围内的数据求和

  2. 2

    如何组合来自两个不同日期范围 sql 的两个不同计数

  3. 3

    选择两个日期之间的Pandas数据框行

  4. 4

    如何获取数据框中两个重叠日期之间的范围?

  5. 5

    合并具有不同日期时间索引的两个数据框

  6. 6

    熊猫合并具有不同日期和列的两个数据框

  7. 7

    合并具有不同日期时间索引的两个数据框

  8. 8

    如何基于两个日期之间过滤的时间创建新的数据框

  9. 9

    如何在JavaScript中获取两个不同日期之间的工作日

  10. 10

    从两个不同日期之间的mysql查询中获取最大和最小小时

  11. 11

    从具有不同日期的两个DataFrame绘制数据

  12. 12

    R-获取两个相同日期之间的行?

  13. 13

    PHP代码在两个日期之间过滤数据

  14. 14

    MySQL查询返回两个日期范围之间的行

  15. 15

    过滤变量以连接两个不同维度的数据框

  16. 16

    两个日期之间的Python每周数据框

  17. 17

    将两个日期之间的行生成到R中的数据框中

  18. 18

    按日期添加两个大小不同的数据框

  19. 19

    根据数据框中两个不同列之间的匹配来删除行

  20. 20

    在两个日期之间过滤MYSQL

  21. 21

    Python按日期范围(两个日期之间)过滤DBF

  22. 22

    Python按日期范围(两个日期之间)过滤DBF

  23. 23

    选择两个日期之间的数据集行

  24. 24

    PySpark - 如何根据列中的两个值从数据框中过滤出连续的行块

  25. 25

    如何从Android中以两个不同日期从MySQL获取数据并在多列ListView中显示

  26. 26

    两个如何比较来自两个不同数据框的熊猫的两行

  27. 27

    如何在两个熊猫数据框之间循环,以根据数据框1中给出的值选择要从数据框2中提取的行范围

  28. 28

    获取日期范围内两个日期之间的DAYS数据

  29. 29

    SQL查询按日期范围查找介于两个日期之间的所有数据

热门标签

归档