Dask数据框:获取每个已排序组的第一行

尼哈尔

我有一个dask数据框,其中包含以下格式:

import pandas as pd
import numpy as np
import dask.dataframe as dd

df = pd.DataFrame({'ID': [1, 1, 2, 3], 'Value': ['ABC', 'ABD', 'CDE', 'DEF'], 'Date': ['2020-10-10', '2019-10-12', '2019-01-08', np.nan]})
ddf = dd.from_pandas(df, npartitions=2)
ddf['Date'] = dd.to_datetime(ddf['Date'], dayfirst=True) # Convert to proper dtype
ddf.head()

输出:

  | ID | Value | Date
-------------------------
0 | 1. | ABC.  | 2020-10-10
1 | 1. | ABD.  | 2019-10-12
2 | 2. | CDE.  | 2019-01-08
3 | 3. | DEF.  | NaT

我需要在按日期排序并按ID分组的每个组中选择第一条记录。如果可能的话,如何在黄昏和大熊猫中实现这一目标。

输出:

ID | Value | Date
-----------------------
1. | ABD.  | 2019-10-12
2. | CDE.  | 2019-01-08
3. | DEF.  | NaT

我试过的

使用:使用groupby获取分组中具有最大计数的行

ddf.set_index('Date').drop_duplicates('ID').head()
# Error: TypeError: '<' not supported between instances of 'NoneType' and 'int'
ddf.loc[ddf.groupby('ID')['Date'].idxmax()].head()
# Error: ValueError: Not all divisions are known, can't align partitions. Please use `set_index` to set the index.

由于许多答案无法正常工作,请测试并发布答案。

斯蒂夫

达斯克

ddf.set_index(ddf.Date.fillna(pd.to_datetime('2262-04-11'))).drop_duplicates('ID').set_index('ID').reset_index().compute()
#   ID Value       Date
#0   1   ABD 2019-10-12
#1   2   CDE 2019-01-08
#2   3   DEF        NaT

(2262-04-11是的最高日期datetime64[ns]

大熊猫

df.sort_values(['ID', 'Date']).drop_duplicates('ID')
#   ID Value        Date
#1   1   ABD  2019-10-12
#2   2   CDE  2019-01-08
#3   3   DEF         NaN

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

熊猫数据框获取每个组的第一行

来自分类Dev

熊猫数据框获取每个组的第一行并复制到其他行

来自分类Dev

如何在每个组的多索引数据框中删除第一行?

来自分类Dev

获取每个组SQL的第一行

来自分类Dev

窗口函数从每个组获取第一行和最后一行

来自分类Dev

获得每个组的第一行

来自分类Dev

根据pandas中每个排序组的第一行创建一列

来自分类Dev

如何按2列排序,并保持创建的每个组的第一行?

来自分类Dev

如何从sqlitedatabase中的表从每个组中获取第一行?

来自分类Dev

如何将熊猫数据框的值除以第一行的每一组?

来自分类Dev

如何使用R复制数据帧每个子组的第一行?

来自分类Dev

从满足条件的几个子组中仅提取数据框中的第一行

来自分类Dev

在每个GROUP BY组中选择第一行

来自分类Dev

Laravel雄辩地选择每个组的第一行

来自分类Dev

使用dplyr在数据框中每个组的开头添加一行

来自分类Dev

r - 删除数据框中每个主题的第一行条件

来自分类Dev

从数据框的第一行创建数据框的标题

来自分类常见问题

通过数据框中的唯一ID获取第一行和最后一行的值

来自分类Dev

通过数据框中的唯一ID获取第一行和最后一行的值

来自分类Dev

如何获取每个月的第一行数据(postgres)

来自分类Dev

从每个组中删除第一行和最后一行

来自分类Dev

对于每个组,选择第一行,然后选择与条件匹配的另一行

来自分类Dev

如何获取第一行表单SQL组查询?

来自分类Dev

获取带有索引的熊猫数据框第一行

来自分类Dev

如何从每个组的上一行获取列值?

来自分类Dev

在mysql中获取每个组的最后一行

来自分类Dev

LINQ从每个查询获取第一行

来自分类Dev

如何对熊猫数据框中的每一行进行排序并获取索引?

来自分类Dev

PySpark-从数据框删除第一行

Related 相关文章

  1. 1

    熊猫数据框获取每个组的第一行

  2. 2

    熊猫数据框获取每个组的第一行并复制到其他行

  3. 3

    如何在每个组的多索引数据框中删除第一行?

  4. 4

    获取每个组SQL的第一行

  5. 5

    窗口函数从每个组获取第一行和最后一行

  6. 6

    获得每个组的第一行

  7. 7

    根据pandas中每个排序组的第一行创建一列

  8. 8

    如何按2列排序,并保持创建的每个组的第一行?

  9. 9

    如何从sqlitedatabase中的表从每个组中获取第一行?

  10. 10

    如何将熊猫数据框的值除以第一行的每一组?

  11. 11

    如何使用R复制数据帧每个子组的第一行?

  12. 12

    从满足条件的几个子组中仅提取数据框中的第一行

  13. 13

    在每个GROUP BY组中选择第一行

  14. 14

    Laravel雄辩地选择每个组的第一行

  15. 15

    使用dplyr在数据框中每个组的开头添加一行

  16. 16

    r - 删除数据框中每个主题的第一行条件

  17. 17

    从数据框的第一行创建数据框的标题

  18. 18

    通过数据框中的唯一ID获取第一行和最后一行的值

  19. 19

    通过数据框中的唯一ID获取第一行和最后一行的值

  20. 20

    如何获取每个月的第一行数据(postgres)

  21. 21

    从每个组中删除第一行和最后一行

  22. 22

    对于每个组,选择第一行,然后选择与条件匹配的另一行

  23. 23

    如何获取第一行表单SQL组查询?

  24. 24

    获取带有索引的熊猫数据框第一行

  25. 25

    如何从每个组的上一行获取列值?

  26. 26

    在mysql中获取每个组的最后一行

  27. 27

    LINQ从每个查询获取第一行

  28. 28

    如何对熊猫数据框中的每一行进行排序并获取索引?

  29. 29

    PySpark-从数据框删除第一行

热门标签

归档