如何做groupby max在熊猫数据框中创建新列

拉胡尔·拉詹(Rahul rajan)

我有下面的数据框,我想将下面提到的sql逻辑应用于

df.head(25)

ORDER_ID    CODE    STATUS_DATE                       RNK
19837715    0400    22/10/19 08:11:08.000000000 AM GMT  2
19837715    0400    22/10/19 10:00:03.000000000 AM GMT  1
19837715    0400    22/10/19 10:47:08.000000000 AM GMT  3
19837715    0500    22/10/19 10:00:00.000000000 AM GMT  1
19837715    1100    01/11/19 10:02:00.000000000 AM GMT  1
19837715    1240    02/11/19 08:00:00.000000000 AM GMT  1
19837833    0400    22/10/19 08:13:09.000000000 AM GMT  3
19837833    0400    22/10/19 08:22:09.000000000 AM GMT  4
19837833    0400    23/10/19 04:30:10.000000000 AM GMT  1
19837833    0400    23/10/19 09:30:07.000000000 PM GMT  2
19837833    0500    23/10/19 01:08:00.000000000 AM GMT  1
19837833    0500    23/10/19 04:30:00.000000000 AM GMT  3
19840750    0500    23/10/19 12:30:00.000000000 PM GMT  1
19840750    1100    01/11/19 10:06:02.000000000 AM GMT  1
19840750    1240    02/11/19 08:40:05.000000000 AM GMT  1
19840750    1305    05/11/19 07:21:03.000000000 AM GMT  2
19840750    1305    05/11/19 08:22:03.000000000 AM GMT  1
19840750    1400    09/11/19 06:13:12.000000000 AM GMT  3

我想在此数据框上应用以下sql逻辑。

select
    order_id
    , TRUNC(MAX(decode(df.code, '0400', STATUS_DATE, Null))) act_0400
    , TRUNC(MAX(decode(df.code, '0500', STATUS_DATE, Null))) act_0500
from
    dataframe df  
where 
      df.rnk =1 
group by    
    order_id

在这里,我试图通过从状态日期列中获取条件等级= 1的最大日期值并根据订单ID对其进行分组来创建新列act_0400和act_0500

预期产量

ORDER_ID    ACT_0400    ACT_0500
19837715    22/10/2019  22/10/2019
19837833    23/10/2019  23/10/2019
19840750                23/10/2019

如何在熊猫中做到这一点

耶斯列尔

你可以先转换STATUS_DATE到日期时间通过to_datetimeSeries.dt.date,然后通过过滤boolean indexingSeries.isin和最后重塑DataFrame.pivot_table与骨料max,最后一些数据通过清洗DataFrame.rename_axisDataFrame.rename_axisDataFrame.reset_index

df['STATUS_DATE'] = pd.to_datetime(df['STATUS_DATE']).dt.date
df = (df[(df['RNK'] == 1) & df['CODE'].isin([400,500])]
        .pivot_table(index="ORDER_ID", columns="CODE", values="STATUS_DATE", aggfunc='max')
        .rename_axis(None, axis=1)
        .add_prefix('ACT_')
        .reset_index())
print (df)
   ORDER_ID     ACT_400     ACT_500
0  19837715  2019-10-22  2019-10-22
1  19837833  2019-10-23  2019-10-23
2  19840750         NaN  2019-10-23

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在TObjectList中如何做?

来自分类Dev

在Yesod中如何做(基于角色的)访问控制?

来自分类Dev

在SimpleJpaRepository中如何做order_by?

来自分类Dev

如何在遍历熊猫数据框时创建新列和插入行值

来自分类Dev

在Spring 3中如何做@CrossOrigin批注?

来自分类Dev

如何从熊猫的groupby函数中获取具有列数的新数据框?

来自分类Dev

在bigquery中如何做子查询?

来自分类Dev

在cakephp 3.0中如何做后端和前端架构?

来自分类Dev

如何做HTTP发布JSON数据

来自分类Dev

如何使用熊猫数据框的特定行和列来创建新系列?

来自分类Dev

如何根据条件在数据框中创建新列

来自分类Dev

如何加快熊猫应用功能在数据框中创建新列?

来自分类Dev

如何基于在熊猫数据框中具有NaN的现有列创建新列?

来自分类Dev

如何做3个向量的外积以在numpy中创建3d矩阵?(与nd相同)

来自分类Dev

如何在熊猫数据框中创建新列

来自分类Dev

在DOM中开始文本节点后如何做

来自分类Dev

像这样在颤动中如何做数据

来自分类Dev

如何在一个xpath中打印2个值或如何做?

来自分类Dev

从熊猫中的GroupBy对象创建一个新的数据框

来自分类Dev

调出名片版式中的面板时如何做

来自分类Dev

使用纯js创建属性时如何做某事

来自分类Dev

LSTM在keras中返回序列时如何做softmax?

来自分类Dev

Delphi中如何做ComBoBox的笔记

来自分类Dev

如何根据数据框的其他列创建新的熊猫列?

来自分类Dev

如何做列的总和。行的总和发生

来自分类Dev

立即将数据保存到数据库后如何做一些事情?

来自分类Dev

我想在 SSMS 的 SELECT 语句中添加一个新行。如何做呢?

来自分类Dev

我如何做动态尺寸框

来自分类Dev

在功能组件中如何做同样的事情?

Related 相关文章

  1. 1

    在TObjectList中如何做?

  2. 2

    在Yesod中如何做(基于角色的)访问控制?

  3. 3

    在SimpleJpaRepository中如何做order_by?

  4. 4

    如何在遍历熊猫数据框时创建新列和插入行值

  5. 5

    在Spring 3中如何做@CrossOrigin批注?

  6. 6

    如何从熊猫的groupby函数中获取具有列数的新数据框?

  7. 7

    在bigquery中如何做子查询?

  8. 8

    在cakephp 3.0中如何做后端和前端架构?

  9. 9

    如何做HTTP发布JSON数据

  10. 10

    如何使用熊猫数据框的特定行和列来创建新系列?

  11. 11

    如何根据条件在数据框中创建新列

  12. 12

    如何加快熊猫应用功能在数据框中创建新列?

  13. 13

    如何基于在熊猫数据框中具有NaN的现有列创建新列?

  14. 14

    如何做3个向量的外积以在numpy中创建3d矩阵?(与nd相同)

  15. 15

    如何在熊猫数据框中创建新列

  16. 16

    在DOM中开始文本节点后如何做

  17. 17

    像这样在颤动中如何做数据

  18. 18

    如何在一个xpath中打印2个值或如何做?

  19. 19

    从熊猫中的GroupBy对象创建一个新的数据框

  20. 20

    调出名片版式中的面板时如何做

  21. 21

    使用纯js创建属性时如何做某事

  22. 22

    LSTM在keras中返回序列时如何做softmax?

  23. 23

    Delphi中如何做ComBoBox的笔记

  24. 24

    如何根据数据框的其他列创建新的熊猫列?

  25. 25

    如何做列的总和。行的总和发生

  26. 26

    立即将数据保存到数据库后如何做一些事情?

  27. 27

    我想在 SSMS 的 SELECT 语句中添加一个新行。如何做呢?

  28. 28

    我如何做动态尺寸框

  29. 29

    在功能组件中如何做同样的事情?

热门标签

归档