Skip to content

Commit 1d9ccc4

Browse files
datacubeRsolegalli
andauthored
Add code examples in outliers module's docstrings (feature-engine#644)
* Adding code examples for Winsorizer, ArbitraryCapper and Trimmer * Fixing details in the examples * add display output to example --------- Co-authored-by: Soledad Galli <[email protected]>
1 parent 3fa9c8a commit 1d9ccc4

File tree

3 files changed

+118
-0
lines changed

3 files changed

+118
-0
lines changed

feature_engine/outliers/artbitrary.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,27 @@ class ArbitraryOutlierCapper(BaseOutlier):
9191
transform:
9292
Cap the variables.
9393
94+
Examples
95+
--------
96+
97+
>>> import pandas as pd
98+
>>> from feature_engine.outliers import ArbitraryOutlierCapper
99+
>>> X = pd.DataFrame(dict(x1 = [1,2,3,4,5,6,7,8,9,10]))
100+
>>> aoc = ArbitraryOutlierCapper(max_capping_dict=dict(x1 = 8),
101+
>>> min_capping_dict=dict(x1 = 2))
102+
>>> aoc.fit(X)
103+
>>> aoc.transform(X)
104+
x1
105+
0 2
106+
1 2
107+
2 3
108+
3 4
109+
4 5
110+
5 6
111+
6 7
112+
7 8
113+
8 8
114+
9 8
94115
"""
95116

96117
def __init__(

feature_engine/outliers/trimmer.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,61 @@ class OutlierTrimmer(WinsorizerBase):
8989
transform:
9090
Remove outliers.
9191
92+
Examples
93+
--------
94+
95+
>>> import pandas as pd
96+
>>> from feature_engine.outliers import OutlierTrimmer
97+
>>> X = pd.DataFrame(dict(x = [0.49671,
98+
>>> -0.1382,
99+
>>> 0.64768,
100+
>>> 1.52302,
101+
>>> -0.2341,
102+
>>> -17.2341,
103+
>>> 1.57921,
104+
>>> 0.76743,
105+
>>> -0.4694,
106+
>>> 0.54256]))
107+
>>> ot = OutlierTrimmer(capping_method='gaussian', tail='left', fold=3)
108+
>>> ot.fit(X)
109+
>>> ot.transform(X)
110+
x
111+
0 0.49671
112+
1 -0.13820
113+
2 0.64768
114+
3 1.52302
115+
4 -0.23410
116+
5 -17.23410
117+
6 1.57921
118+
7 0.76743
119+
8 -0.46940
120+
9 0.54256
121+
122+
>>> import pandas as pd
123+
>>> from feature_engine.outliers import OutlierTrimmer
124+
>>> X = pd.DataFrame(dict(x = [0.49671,
125+
>>> -0.1382,
126+
>>> 0.64768,
127+
>>> 1.52302,
128+
>>> -0.2341,
129+
>>> -17.2341,
130+
>>> 1.57921,
131+
>>> 0.76743,
132+
>>> -0.4694,
133+
>>> 0.54256]))
134+
>>> ot = OutlierTrimmer(capping_method='mad', tail='left', fold=3)
135+
>>> ot.fit(X)
136+
>>> ot.transform(X)
137+
x
138+
0 0.49671
139+
1 -0.13820
140+
2 0.64768
141+
3 1.52302
142+
4 -0.23410
143+
6 1.57921
144+
7 0.76743
145+
8 -0.46940
146+
9 0.54256
92147
"""
93148

94149
def transform(self, X: pd.DataFrame) -> pd.DataFrame:

feature_engine/outliers/winsorizer.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,48 @@ class Winsorizer(WinsorizerBase):
9797
transform:
9898
Cap the variables.
9999
100+
Examples
101+
--------
102+
103+
>>> import numpy as np
104+
>>> import pandas as pd
105+
>>> from feature_engine.outliers import Winsorizer
106+
>>> np.random.seed(42)
107+
>>> X = pd.DataFrame(dict(x = np.random.normal(size = 10)))
108+
>>> wz = Winsorizer(capping_method='mad', tail='both', fold=3)
109+
>>> wz.fit(X)
110+
>>> wz.transform(X)
111+
x
112+
0 0.496714
113+
1 -0.138264
114+
2 0.647689
115+
3 1.523030
116+
4 -0.234153
117+
5 -0.234137
118+
6 1.579213
119+
7 0.767435
120+
8 -0.469474
121+
9 0.542560
122+
123+
>>> import numpy as np
124+
>>> import pandas as pd
125+
>>> from feature_engine.outliers import Winsorizer
126+
>>> np.random.seed(42)
127+
>>> X = pd.DataFrame(dict(x = np.random.normal(size = 10)))
128+
>>> wz = Winsorizer(capping_method='mad', tail='both', fold=3)
129+
>>> wz.fit(X)
130+
>>> wz.transform(X)
131+
x
132+
0 0.496714
133+
1 -0.138264
134+
2 0.647689
135+
3 1.523030
136+
4 -0.234153
137+
5 -0.234137
138+
6 1.579213
139+
7 0.767435
140+
8 -0.469474
141+
9 0.542560
100142
"""
101143

102144
def __init__(

0 commit comments

Comments
 (0)