如何回头看高几行以查看是否满足条件,然后相应地替换单元格
How to look back a few rows higher to see if a condition is satisfied and then replace a cell accordingly
我有一个数据框,如果满足条件,它会在上面的几行中查找带有另一个字符串的特定行,然后将其自身替换为具有该字符串的整个单元格。
这是一个例子:
如果在类型列中检测到 "test",它会在上方 3 行中查找包含字符串 "Subject" 的行。如果满足该条件,它会将其单元格名称更改为它找到的整个单元格。
数据为:
Type Score
Ignore Ignore
Subject_English NA
test 58
test 6
test 87
Subject_science NA
test 23
test 47
test 89
test 45
test 23
ignore ignore
ignore ignore
ignore ignore
test 54
Subject_Math NA
Ignore ignore
Ignore ignore
test 88
最后,如果多行满足初始条件,则取最新的。其次,一旦更改了一个单元格,就可以使用该单元格来满足另一个单元格的第一个条件。
第三,在 "test" 行和我希望满足我需要忽略的条件的行之间可能有几行。
进一步说明:
测试的数量可能会有所不同,可能是 3 或 10。您可以在主题之间忽略。如果可能的话,我想添加一个阈值,如果最后 10 行中没有主题,则将其保留为测试
How to look back a few rows higher to see if a condition is satisfied and then replace a cell accordingly
尝试"look back"当然是可能的,但它增加了很多复杂性。相反,从上到下遍历行。每当您遇到值以 "Subject" 开头的单元格时,请将变量 current_subject
设置为该值。每当遇到值为 "test" 的单元格时,将该单元格的值设置为 current_subject
.
中的值
I'd like to add a threshold that if there wasn't a subject in the last 10 rows, then leave it as test
好的,创建另一个名为 nonsubject_rows
的变量。每当遇到主题行时都将其设置为 0,也许当您将测试行设置为当前主题时也将其设置为 0;否则,为您访问的每一行增加它。在设置测试行的值之前,请检查 nonsubject_rows
是否大于阈值;如果是,请不要更改行。
简而言之,您可以跟踪处理每一行所需的信息。这将比每次需要时都搜索信息更简单、更快捷。
我有一个数据框,如果满足条件,它会在上面的几行中查找带有另一个字符串的特定行,然后将其自身替换为具有该字符串的整个单元格。
这是一个例子:
如果在类型列中检测到 "test",它会在上方 3 行中查找包含字符串 "Subject" 的行。如果满足该条件,它会将其单元格名称更改为它找到的整个单元格。
数据为:
Type Score
Ignore Ignore
Subject_English NA
test 58
test 6
test 87
Subject_science NA
test 23
test 47
test 89
test 45
test 23
ignore ignore
ignore ignore
ignore ignore
test 54
Subject_Math NA
Ignore ignore
Ignore ignore
test 88
最后,如果多行满足初始条件,则取最新的。其次,一旦更改了一个单元格,就可以使用该单元格来满足另一个单元格的第一个条件。 第三,在 "test" 行和我希望满足我需要忽略的条件的行之间可能有几行。 进一步说明: 测试的数量可能会有所不同,可能是 3 或 10。您可以在主题之间忽略。如果可能的话,我想添加一个阈值,如果最后 10 行中没有主题,则将其保留为测试
How to look back a few rows higher to see if a condition is satisfied and then replace a cell accordingly
尝试"look back"当然是可能的,但它增加了很多复杂性。相反,从上到下遍历行。每当您遇到值以 "Subject" 开头的单元格时,请将变量 current_subject
设置为该值。每当遇到值为 "test" 的单元格时,将该单元格的值设置为 current_subject
.
I'd like to add a threshold that if there wasn't a subject in the last 10 rows, then leave it as test
好的,创建另一个名为 nonsubject_rows
的变量。每当遇到主题行时都将其设置为 0,也许当您将测试行设置为当前主题时也将其设置为 0;否则,为您访问的每一行增加它。在设置测试行的值之前,请检查 nonsubject_rows
是否大于阈值;如果是,请不要更改行。
简而言之,您可以跟踪处理每一行所需的信息。这将比每次需要时都搜索信息更简单、更快捷。