Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
SaQC
Manage
Activity
Members
Labels
Plan
Issues
35
Issue boards
Milestones
Wiki
Code
Merge requests
8
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
rdm-software
SaQC
Commits
653a4a40
Commit
653a4a40
authored
4 years ago
by
Bert Palm
🎇
Browse files
Options
Downloads
Patches
Plain Diff
fixed positional flagger
parent
e92e3d8e
No related branches found
Branches containing commit
No related tags found
Tags containing commit
3 merge requests
!193
Release 1.4
,
!188
Release 1.4
,
!126
windowFlagging
Pipeline
#9493
passed with stage
in 5 minutes and 42 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
saqc/flagger/positionalflagger.py
+8
-5
8 additions, 5 deletions
saqc/flagger/positionalflagger.py
test/flagger/test_positionalflagger.py
+9
-7
9 additions, 7 deletions
test/flagger/test_positionalflagger.py
with
17 additions
and
12 deletions
saqc/flagger/positionalflagger.py
+
8
−
5
View file @
653a4a40
...
...
@@ -37,9 +37,12 @@ class PositionalFlagger(BaseFlagger):
flag
=
str
(
self
.
BAD
if
flag
is
None
else
flag
)
self
.
isValidFlag
(
flag
,
fail
=
True
)
out
=
self
if
inplace
else
deepcopy
(
self
)
loc
=
slice
(
None
)
if
loc
is
None
else
loc
out_flags
=
out
.
_flags
[
field
]
idx
=
self
.
getFlags
(
field
,
loc
).
index
mask
=
pd
.
Series
(
True
,
index
=
idx
,
dtype
=
bool
)
mask
=
mask
.
reindex_like
(
out_flags
).
fillna
(
False
)
# replace unflagged with the magic starter '9'
out_flags
=
out_flags
.
str
.
replace
(
f
"
^
{
self
.
UNFLAGGED
}
"
,
"
9
"
,
regex
=
True
)
...
...
@@ -53,21 +56,21 @@ class PositionalFlagger(BaseFlagger):
# we rigorously overwrite existing flags
new_flags
=
out_flags
.
str
[
position
]
new_flags
.
a
loc
[
loc
]
=
flag
new_flags
.
loc
[
mask
]
=
flag
# calc window flags
if
flag_after
is
not
None
or
flag_before
is
not
None
:
idx
=
self
.
getFlags
(
field
,
loc
).
index
mask
=
pd
.
Series
(
True
,
index
=
idx
,
dtype
=
bool
)
win_mask
,
win_flag
=
self
.
_getWindowMask
(
field
,
mask
,
flag_after
,
flag_before
,
win_flag
,
flag
,
force
)
new_flags
.
a
loc
[
win_mask
]
=
win_flag
new_flags
.
loc
[
win_mask
]
=
win_flag
out
.
_flags
[
field
]
=
out_flags
.
str
[:
position
]
+
new_flags
+
out_flags
.
str
[
position
+
1
:]
return
out
def
isFlagged
(
self
,
field
=
None
,
loc
=
None
,
flag
=
None
,
comparator
=
"
>
"
):
field
=
slice
(
None
)
if
field
is
None
else
field
flags
=
self
.
_getMaxFlag
(
field
,
loc
).
astype
(
int
)
flags
=
flags
.
loc
[:,
field
]
# notna() to prevent nans to become True,
# eg.: `np.nan != 0 -> True`
...
...
This diff is collapsed.
Click to expand it.
test/flagger/test_positionalflagger.py
+
9
−
7
View file @
653a4a40
...
...
@@ -42,13 +42,15 @@ def test_isFlagged(data):
flagger
=
PositionalFlagger
().
initFlags
(
data
=
data
)
field
=
data
.
columns
[
0
]
loc_sus
=
slice
(
1
,
20
,
2
)
flagger
=
flagger
.
setFlags
(
field
=
field
,
loc
=
loc_sus
,
flag
=
flagger
.
SUSPICIOUS
)
assert
(
flagger
.
isFlagged
(
field
=
field
,
comparator
=
"
>=
"
,
flag
=
flagger
.
SUSPICIOUS
)[
loc_sus
]
==
True
).
all
(
axis
=
None
)
mask_sus
=
np
.
zeros
(
len
(
data
[
field
]),
dtype
=
bool
)
mask_sus
[
1
:
20
:
2
]
=
True
flagger
=
flagger
.
setFlags
(
field
=
field
,
loc
=
mask_sus
,
flag
=
flagger
.
SUSPICIOUS
)
assert
(
flagger
.
isFlagged
(
field
=
field
,
comparator
=
"
>=
"
,
flag
=
flagger
.
SUSPICIOUS
)[
mask_sus
]
==
True
).
all
(
axis
=
None
)
assert
(
flagger
.
isFlagged
(
field
=
field
,
comparator
=
"
>
"
,
flag
=
flagger
.
SUSPICIOUS
)
==
False
).
all
(
axis
=
None
)
loc_bad
=
slice
(
1
,
10
,
2
)
flagger
=
flagger
.
setFlags
(
field
=
field
,
loc
=
loc_bad
,
flag
=
flagger
.
BAD
)
assert
(
flagger
.
isFlagged
(
field
=
field
,
comparator
=
"
>
"
)[
loc_sus
]
==
True
).
all
(
axis
=
None
)
assert
(
flagger
.
isFlagged
(
field
=
field
,
comparator
=
"
>=
"
,
flag
=
flagger
.
BAD
)[
loc_bad
]
==
True
).
all
(
axis
=
None
)
mask_bad
=
np
.
zeros
(
len
(
data
[
field
]),
dtype
=
bool
)
mask_bad
[
1
:
10
:
2
]
=
True
flagger
=
flagger
.
setFlags
(
field
=
field
,
loc
=
mask_bad
,
flag
=
flagger
.
BAD
)
assert
(
flagger
.
isFlagged
(
field
=
field
,
comparator
=
"
>
"
)[
mask_sus
]
==
True
).
all
(
axis
=
None
)
assert
(
flagger
.
isFlagged
(
field
=
field
,
comparator
=
"
>=
"
,
flag
=
flagger
.
BAD
)[
mask_bad
]
==
True
).
all
(
axis
=
None
)
assert
(
flagger
.
isFlagged
(
field
=
field
,
comparator
=
"
>
"
,
flag
=
flagger
.
BAD
)
==
False
).
all
(
axis
=
None
)
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment