为pandas df中的每个组在新列中重复值

Apoorv

我的输入如下,我想创建一个新的列季度,应该为每组“名称”重复,如预期输出所示

number  name        date1       date 2
1750    AAR CORP    12/18/2015  5/31/2012
1750    AAR CORP    3/23/2016   5/31/2012
1750    AAR CORP    9/23/2016   5/31/2012
1750    AAR CORP    12/22/2016  5/31/2012
1800    ABBOTT LAB  5/8/2012    12/31/2011
1800    ABBOTT LAB  8/7/2012    12/31/2011
1800    ABBOTT LAB  11/7/2012   12/31/2011
1800    ABBOTT LAB  5/8/2013    12/31/2011
1800    ABBOTT LAB  8/6/2013    12/31/2011

预期输出:

number  name        date1       date 2      quarter
1750    AAR CORP    12/18/2015  5/31/2012   QTR 1
1750    AAR CORP    3/23/2016   5/31/2012   QTR 2
1750    AAR CORP    9/23/2016   5/31/2012   QTR 3
1750    AAR CORP    12/22/2016  5/31/2012   QTR 1
1800    ABBOTT LAB  5/8/2012    12/31/2011  QTR 1
1800    ABBOTT LAB  8/7/2012    12/31/2011  QTR 2
1800    ABBOTT LAB  11/7/2012   12/31/2011  QTR 3
1800    ABBOTT LAB  5/8/2013    12/31/2011  QTR 1
1800    ABBOTT LAB  8/6/2013    12/31/2011  QTR 2

季度值将在一组 3 中重复,直到有该名称的行为止。

我在 Pandas 的简单 groupby 之后被困住了,不知道如何处理每个组。

您可以cumcount在组上使用,然后对于重复1,2,3,..序列,获取moduloof 3add 1

In [125]: 'QTR ' + ((df.groupby('name').cumcount() % 3) + 1).astype(str)
Out[125]:
0    QTR 1
1    QTR 2
2    QTR 3
3    QTR 1
4    QTR 1
5    QTR 2
6    QTR 3
7    QTR 1
8    QTR 2
dtype: object

或者,

In [142]: 'QTR ' + df.groupby('name').cumcount().mod(3).add(1).astype(str)
Out[142]:
0    QTR 1
1    QTR 2
2    QTR 3
3    QTR 1
4    QTR 1
5    QTR 2
6    QTR 3
7    QTR 1
8    QTR 2
dtype: object

细节

In [131]: df['quarter'] = 'QTR ' + ((df.groupby('name').cumcount() % 3) + 1).astype(str)

In [132]: df
Out[132]:
   number        name       date1       date2 quarter
0    1750    AAR CORP  12/18/2015   5/31/2012   QTR 1
1    1750    AAR CORP   3/23/2016   5/31/2012   QTR 2
2    1750    AAR CORP   9/23/2016   5/31/2012   QTR 3
3    1750    AAR CORP  12/22/2016   5/31/2012   QTR 1
4    1800  ABBOTT LAB    5/8/2012  12/31/2011   QTR 1
5    1800  ABBOTT LAB    8/7/2012  12/31/2011   QTR 2
6    1800  ABBOTT LAB   11/7/2012  12/31/2011   QTR 3
7    1800  ABBOTT LAB    5/8/2013  12/31/2011   QTR 1
8    1800  ABBOTT LAB    8/6/2013  12/31/2011   QTR 2

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在df列中为每个组添加“总计”行

来自分类Dev

获取pandas df中连续值为零的列的索引

来自分类Dev

Python Pandas每个组中组与组总计的值之比

来自分类Dev

如何在Pandas中为每个唯一行值删除重复项?

来自分类Dev

如何在SSRS中为每个子组重复组头

来自分类Dev

在R中的新df中为新值创建循环

来自分类Dev

根据Pandas df中另一列中的最大值删除重复行

来自分类Dev

基于数组的pandas df中的新列

来自分类Dev

在列中每个单元格具有多个值的Pandas df.mode

来自分类Dev

Pandas:在 df 中为包含列表值的分解列创建多行

来自分类Dev

为列R中的每个重复值分配唯一的ID号

来自分类Dev

如何拆分数据框中的列并将每个值存储为新行(在熊猫中)?

来自分类Dev

SQL如何基于组中现有列的计数为新列创建值?

来自分类Dev

如果另一列中的值为空,则删除重复项-Pandas

来自分类Dev

使用Pandas / Python为列中的重复项生成唯一值

来自分类Dev

为 pandas 数据框的每个 id 替换列中序列的缺失值

来自分类Dev

在R中为组的每个成员分配值的快速方法

来自分类Dev

为数据框中的每个组取最大值

来自分类Dev

对两列进行排序,并使用pandas为数据帧中的排序值创建新列

来自分类Dev

Python Pandas:如果条件为true,则将现有列值放入新列中

来自分类Dev

如何在 Pandas DF 中将具有特定值的特定列设置为新值?

来自分类Dev

R data.table:使用另一列中的值为面板中的每个组重新设置基础

来自分类Dev

在Pandas中,如何计算多列组之后每个组的子组中的平均计数数?

来自分类Dev

从第三列为1的另一列中的最后一个值创建pandas df列

来自分类Dev

将单词分词为pandas数据框中的新列

来自分类Dev

如何根据Pandas DataFrame中的条件添加每组重复值的新列?

来自分类Dev

使用时间序列中每个id的值的列制作新的pandas数据框

来自分类Dev

联接数据库表:在一个表中为第二个表中的每个组重复值

来自分类Dev

Python Pandas:基于组内的最大值创建新列,但使用其他(字符串)列中的值

Related 相关文章

  1. 1

    在df列中为每个组添加“总计”行

  2. 2

    获取pandas df中连续值为零的列的索引

  3. 3

    Python Pandas每个组中组与组总计的值之比

  4. 4

    如何在Pandas中为每个唯一行值删除重复项?

  5. 5

    如何在SSRS中为每个子组重复组头

  6. 6

    在R中的新df中为新值创建循环

  7. 7

    根据Pandas df中另一列中的最大值删除重复行

  8. 8

    基于数组的pandas df中的新列

  9. 9

    在列中每个单元格具有多个值的Pandas df.mode

  10. 10

    Pandas:在 df 中为包含列表值的分解列创建多行

  11. 11

    为列R中的每个重复值分配唯一的ID号

  12. 12

    如何拆分数据框中的列并将每个值存储为新行(在熊猫中)?

  13. 13

    SQL如何基于组中现有列的计数为新列创建值?

  14. 14

    如果另一列中的值为空,则删除重复项-Pandas

  15. 15

    使用Pandas / Python为列中的重复项生成唯一值

  16. 16

    为 pandas 数据框的每个 id 替换列中序列的缺失值

  17. 17

    在R中为组的每个成员分配值的快速方法

  18. 18

    为数据框中的每个组取最大值

  19. 19

    对两列进行排序,并使用pandas为数据帧中的排序值创建新列

  20. 20

    Python Pandas:如果条件为true,则将现有列值放入新列中

  21. 21

    如何在 Pandas DF 中将具有特定值的特定列设置为新值?

  22. 22

    R data.table:使用另一列中的值为面板中的每个组重新设置基础

  23. 23

    在Pandas中,如何计算多列组之后每个组的子组中的平均计数数?

  24. 24

    从第三列为1的另一列中的最后一个值创建pandas df列

  25. 25

    将单词分词为pandas数据框中的新列

  26. 26

    如何根据Pandas DataFrame中的条件添加每组重复值的新列?

  27. 27

    使用时间序列中每个id的值的列制作新的pandas数据框

  28. 28

    联接数据库表:在一个表中为第二个表中的每个组重复值

  29. 29

    Python Pandas:基于组内的最大值创建新列,但使用其他(字符串)列中的值

热门标签

归档