ডেটা এবং ২ টি গোষ্ঠী সহ একটি পূর্ণ উদাহরণ:
আমদানি:
from StringIO import StringIO
import pandas as pd
#pandas config
pd.set_option('display.max_rows', 20)
2 টি গ্রুপের সাথে ডেটা উদাহরণ: জি 1: গ্রুপ 1. জি 2: গ্রুপ 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)