veri ve 2 grup içeren tam bir örnek:
İthalat:
from StringIO import StringIO
import pandas as pd
#pandas config
pd.set_option('display.max_rows', 20)
2 gruplu veri örneği: G1: Grup 1. G2: Grup 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
""")
Panda verilerini veri çerçevesine metin verilerini okuyun:
df = pd.read_csv(TESTDATA, sep=";")
Standart sapmaları kullanarak aykırı değerleri tanımlayın
stds = 1.0
outliers = df[['G1', 'G2', 'Value']].groupby(['G1','G2']).transform(
lambda group: (group - group.mean()).abs().div(group.std())) > stds
Filtrelenmiş veri değerlerini ve aykırı değerleri tanımlayın:
dfv = df[outliers.Value == False]
dfo = df[outliers.Value == True]
Sonucu yazdırın:
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)