डेटा और 2 समूहों के साथ एक पूर्ण उदाहरण इस प्रकार है:
आयात:
from StringIO import StringIO
import pandas as pd
#pandas config
pd.set_option('display.max_rows', 20)
2 समूहों के साथ डेटा उदाहरण: G1: समूह 1. G2: समूह 2:
TESTDATA = StringIO("""G1;G2;Value
1;A;1.6
1;A;5.1
1;A;7.1
1;A;8.1
1;B;21.1
1;B;22.1
1;B;24.1
1;B;30.6
2;A;40.6
2;A;51.1
2;A;52.1
2;A;60.6
2;B;80.1
2;B;70.6
2;B;90.6
2;B;85.1
""")
पंडों के डेटाफ्रेम का पाठ डेटा पढ़ें:
df = pd.read_csv(TESTDATA, sep=";")
मानक विचलन का उपयोग कर आउटलेर्स को परिभाषित करें
stds = 1.0
outliers = df[['G1', 'G2', 'Value']].groupby(['G1','G2']).transform(
lambda group: (group - group.mean()).abs().div(group.std())) > stds
फ़िल्टर्ड डेटा मान और आउटलेर परिभाषित करें:
dfv = df[outliers.Value == False]
dfo = df[outliers.Value == True]
परिणाम प्रिंट करें:
print '\n'*5, 'All values with decimal 1 are non-outliers. In the other hand, all values with 6 in the decimal are.'
print '\nDef DATA:\n%s\n\nFiltred Values with %s stds:\n%s\n\nOutliers:\n%s' %(df, stds, dfv, dfo)