मिसिंग डेटा से निपटना

Python में Exploratory Data Analysis

George Boorman

Curriculum Manager, DataCamp

मिसिंग डेटा समस्या क्यों है?

  • वितरणों पर असर पड़ता है
    • लंबे छात्रों की ऊँचाइयाँ गायब
  • जनसंख्या का प्रतिनिधित्व कम होता है
    • कुछ समूहों का असंतुलित प्रतिनिधित्व, जैसे सबसे उम्रदराज छात्रों का डेटा नहीं
  • गलत निष्कर्ष निकल सकते हैं

नमूना बनाम जनसंख्या की ऊँचाई वितरण, जहाँ नमूने का अधिकतम और औसत कम है

Python में Exploratory Data Analysis

डेटा प्रोफेशनल्स की जॉब डेटा

Column विवरण Data type
Working_Year जिस वर्ष डेटा लिया गया Float
Designation जॉब टाइटल String
Experience अनुभव स्तर, जैसे "Mid", "Senior" String
Employment_Status रोजगार अनुबंध का प्रकार, जैसे "FT", "PT" String
Employee_Location रोजगार का देश String
Company_Size कंपनी आकार के लेबल, जैसे "S", "M", "L" String
Remote_Working_Ratio रिमोट काम का प्रतिशत Integer
Salary_USD वेतन (US dollars) Float
Python में Exploratory Data Analysis

अनुभव स्तर अनुसार वेतन

क्लीन डेटासेट में अनुभव स्तर अनुसार वेतन का बॉक्स प्लॉट, ऊपर की सीमा लगभग 600000 डॉलर

मिसिंग वैल्यू वाले डेटासेट में अनुभव स्तर अनुसार वेतन का बॉक्स प्लॉट, ऊपर की सीमा लगभग 450000 डॉलर

Python में Exploratory Data Analysis

मिसिंग वैल्यू जाँचना

print(salaries.isna().sum())
Working_Year            12
Designation             27
Experience              33
Employment_Status       31
Employee_Location       28
Company_Size            40
Remote_Working_Ratio    24
Salary_USD              60
dtype: int64
Python में Exploratory Data Analysis

मिसिंग डेटा से निपटने की रणनीतियाँ

  • मिसिंग वैल्यू हटाएँ
    • कुल का 5% या कम
  • mean, median, mode से इम्प्यूट करें
    • वितरण और संदर्भ पर निर्भर
  • सब-ग्रुप के अनुसार इम्प्यूट करें
    • अलग अनुभव स्तरों की median सैलरी अलग होती है
Python में Exploratory Data Analysis

मिसिंग वैल्यू हटाना

threshold = len(salaries) * 0.05
print(threshold)
30
Python में Exploratory Data Analysis

मिसिंग वैल्यू हटाना

cols_to_drop = salaries.columns[salaries.isna().sum() <= threshold]

print(cols_to_drop)
Index(['Working_Year', 'Designation', 'Employee_Location',
       'Remote_Working_Ratio'],
      dtype='object')
salaries.dropna(subset=cols_to_drop, inplace=True)
Python में Exploratory Data Analysis

सार-सांख्यिकी से इम्प्यूट करना

cols_with_missing_values = salaries.columns[salaries.isna().sum() > 0]
print(cols_with_missing_values)
Index(['Experience', 'Employment_Status', 'Company_Size', 'Salary_USD'], 
    dtype='object')
for col in cols_with_missing_values[:-1]:
    salaries[col].fillna(salaries[col].mode()[0])
Python में Exploratory Data Analysis

बाकी बची मिसिंग वैल्यू जाँचें

print(salaries.isna().sum())
Working_Year             0
Designation              0
Experience               0
Employment_Status        0
Employee_Location        0
Company_Size             0
Remote_Working_Ratio     0
Salary_USD              41
Python में Exploratory Data Analysis

सब-ग्रुप के अनुसार इम्प्यूट करना

salaries_dict = salaries.groupby("Experience")["Salary_USD"].median().to_dict()

print(salaries_dict)
{'Entry': 55380.0, 'Executive': 135439.0, 'Mid': 74173.5, 'Senior': 128903.0}
Python में Exploratory Data Analysis

सब-ग्रुप के अनुसार इम्प्यूट करना

salaries["Salary_USD"] = salaries["Salary_USD"].fillna(salaries["Experience"].map(salaries_dict))
Python में Exploratory Data Analysis

अब कोई मिसिंग वैल्यू नहीं!

print(salaries.isna().sum())
Working_Year            0
Designation             0
Experience              0
Employment_Status       0
Employee_Location       0
Company_Size            0
Remote_Working_Ratio    0
Salary_USD              0
dtype: int64
Python में Exploratory Data Analysis

अभ्यास करते हैं!

Python में Exploratory Data Analysis

Preparing Video For Download...