遍历数据框并根据条件将增量值添加到列中

我有一个这样的数据框:

tdf <- structure(list(indx = c(1, 1, 1, 2, 2, 3, 3), group = c(1, 1, 
2, 1, 2, 1, 1)), .Names = c("indx", "group"), row.names = c(NA, 
-7L), class = "data.frame")

数据框如下所示:

   indx group
1    1     1
2    1     1
3    1     2
4    2     1
5    2     2
6    3     1
7    3     1

我想遍历该组,并根据需要保留第一个索引的组值

对于第一个之后的indx值的每一个增量,我想添加上一个indx的组的最大值,并想要从第二个城市开始递增该组的值。

所需的输出是这样的:

    indx group    desiredOutput
1    1     1             1
2    1     1             1
3    1     2             2
4    2     1             3
5    2     2             4
6    3     1             5
7    3     1             5

为了清楚起见,我将按以下方式拆分数据帧:

    indx group    desiredOutput
1    1     1             1
2    1     1             1       To be retained as is
3    1     2             2


4    2     1             3       Second index-the max value of desiredOutput in indx1 is 2                   
5    2     2             4       I want to add this max value to the group value in indx 2       


6    3     1             5       Similarly, the max value of des.out of indx2 is 4
7    3     1             5       Adding the max value to group provides me new values

我尝试将此数据帧拆分为数据帧列表,然后迭代其中的每个。

ndf <- split(tdf,f = tdf$indx)
x <- 0
for (i in seq_along(ndf)){
    ndf[[i]]$ng <- ndf[[i]]$group+x
    x <- max(ndf[[i]]$indx) + 1
}
ndf

上面的代码更新了第二个索引的值,但是到达第二个索引时失败。

马库斯

首先,找到每个索引的最大组值,然后计算这些组的累积总和。

library(dplyr)

maxGroupVals <- tdf %>% 
  group_by(indx) %>% 
  summarise(maxVal = max(group)) %>% 
  mutate(indx = indx + 1, maxVal = cumsum(maxVal))

将1加到索引中,因为这是将这些最大值添加到的索引。连接数据框将为您提供目标增长的列。然后,它是带有条件语句的简单mutate,用于处理index = 1的情况。

tdf %>% 
  left_join(maxGroupVals) %>% 
  mutate(desiredOutput = if_else(indx == 1, group, group + maxVal)) %>% 
  select(-maxVal)

如果需要,请删除中间计算列。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据条件将列添加到数据框

来自分类Dev

遍历数据框将行添加到列pandas python

来自分类Dev

循环遍历数据帧的每一行,并根据条件将元素添加到数据帧

来自分类Dev

根据外部条件将列添加到熊猫数据框

来自分类Dev

根据条件将一列添加到数据框

来自分类Dev

如何根据条件将一列添加到数据框

来自分类Dev

循环遍历数据框中的元素,并根据条件添加一行

来自分类Dev

根据R中前一行的条件将行添加到数据框

来自分类Dev

根据另一个数据框中的匹配条件将列添加到R中的数据框中

来自分类Dev

R:根据条件将数据从行添加到列

来自分类Dev

根据单个列中的值将值添加到数据框列

来自分类Dev

根据其他列中的值将列添加到数据框

来自分类Dev

根据多列的值将新列添加到数据框中

来自分类Dev

根据特定的行值将列添加到数据框中(2)

来自分类Dev

根据dplyr中多个数据框中的值将列添加到数据框中

来自分类Dev

根据同一数据框另一列中的字符将文本列添加到数据框

来自分类Dev

根据另一个数据框中的值将列添加到数据框中

来自分类常见问题

将列动态添加到R中的数据框

来自分类Dev

将列动态添加到R中的数据框

来自分类Dev

如何将列添加到数据框中?

来自分类Dev

根据python中的列数据类型将列添加到显示布尔值的数据框

来自分类Dev

根据可变条件将虚假数据添加到数据框

来自分类Dev

大熊猫-根据多行中的值将汇总列数据的行添加到数据框中

来自分类Dev

根据另一列中的值将值添加到熊猫数据框的一列中

来自分类Dev

在R中,如何根据第一列的内容将一列添加到数据框中?

来自分类Dev

根据另一行中另一列的值将列添加到数据框中

来自分类Dev

根据另一列中的值将值添加到熊猫数据框的一列中

来自分类Dev

根据两个现有列中的值将第三列添加到数据框中

来自分类Dev

将列添加到 Pandas 数据框并遍历其中一列

Related 相关文章

  1. 1

    根据条件将列添加到数据框

  2. 2

    遍历数据框将行添加到列pandas python

  3. 3

    循环遍历数据帧的每一行,并根据条件将元素添加到数据帧

  4. 4

    根据外部条件将列添加到熊猫数据框

  5. 5

    根据条件将一列添加到数据框

  6. 6

    如何根据条件将一列添加到数据框

  7. 7

    循环遍历数据框中的元素,并根据条件添加一行

  8. 8

    根据R中前一行的条件将行添加到数据框

  9. 9

    根据另一个数据框中的匹配条件将列添加到R中的数据框中

  10. 10

    R:根据条件将数据从行添加到列

  11. 11

    根据单个列中的值将值添加到数据框列

  12. 12

    根据其他列中的值将列添加到数据框

  13. 13

    根据多列的值将新列添加到数据框中

  14. 14

    根据特定的行值将列添加到数据框中(2)

  15. 15

    根据dplyr中多个数据框中的值将列添加到数据框中

  16. 16

    根据同一数据框另一列中的字符将文本列添加到数据框

  17. 17

    根据另一个数据框中的值将列添加到数据框中

  18. 18

    将列动态添加到R中的数据框

  19. 19

    将列动态添加到R中的数据框

  20. 20

    如何将列添加到数据框中?

  21. 21

    根据python中的列数据类型将列添加到显示布尔值的数据框

  22. 22

    根据可变条件将虚假数据添加到数据框

  23. 23

    大熊猫-根据多行中的值将汇总列数据的行添加到数据框中

  24. 24

    根据另一列中的值将值添加到熊猫数据框的一列中

  25. 25

    在R中,如何根据第一列的内容将一列添加到数据框中?

  26. 26

    根据另一行中另一列的值将列添加到数据框中

  27. 27

    根据另一列中的值将值添加到熊猫数据框的一列中

  28. 28

    根据两个现有列中的值将第三列添加到数据框中

  29. 29

    将列添加到 Pandas 数据框并遍历其中一列

热门标签

归档