ವಿಷಯಕ್ಕೆ ತೆರಳಿ

Pandas ಪರಿಚಯ (Introduction to Pandas)

Pandas ಪೈಥಾನ್‌ನಲ್ಲಿ ಡೇಟಾ ಮ್ಯಾನಿಪ್ಯುಲೇಶನ್ (data manipulation) ಮತ್ತು ವಿಶ್ಲೇಷಣೆಗಾಗಿ (analysis) ಬಳಸಲಾಗುವ ಅತ್ಯಂತ ಜನಪ್ರಿಯ ಮತ್ತು ಶಕ್ತಿಯುತ ಲೈಬ್ರರಿ. ಇದು ಮುಖ್ಯವಾಗಿ ಟೇಬಲ್ ರೂಪದ ಡೇಟಾದೊಂದಿಗೆ (tabular data) ಕೆಲಸ ಮಾಡಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ.

Pandas ಎರಡು ಪ್ರಮುಖ ಡೇಟಾ ಸ್ಟ್ರಕ್ಚರ್‌ಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ: 1. Series: ಒಂದು ಆಯಾಮದ (1-D) ಲೇಬಲ್ ಮಾಡಿದ ಅರೇ. 2. DataFrame: ಎರಡು ಆಯಾಮದ (2-D) ಲೇಬಲ್ ಮಾಡಿದ ಡೇಟಾ ಸ್ಟ್ರಕ್ಚರ್, ಇದರಲ್ಲಿ ಕಾಲಂಗಳು ವಿಭಿನ್ನ ಡೇಟಾ ಪ್ರಕಾರಗಳನ್ನು ಹೊಂದಿರಬಹುದು. ಇದನ್ನು ಸ್ಪ್ರೆಡ್‌ಶೀಟ್ ಅಥವಾ SQL ಟೇಬಲ್‌ನಂತೆ ಯೋಚಿಸಬಹುದು.

Pandas ಅನ್ನು ಏಕೆ ಬಳಸಬೇಕು?

  • ಸುಲಭ ಡೇಟಾ ನಿರ್ವಹಣೆ: CSV, Excel, SQL ಡೇಟಾಬೇಸ್‌ಗಳಂತಹ ವಿವಿಧ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳಿಂದ ಡೇಟಾವನ್ನು ಸುಲಭವಾಗಿ ಓದಬಹುದು ಮತ್ತು ಬರೆಯಬಹುದು.
  • ಡೇಟಾ ಕ್ಲೀನಿಂಗ್: ಕಾಣೆಯಾದ ಡೇಟಾವನ್ನು (missing data) ನಿರ್ವಹಿಸಲು, ಡೇಟಾವನ್ನು ಫಿಲ್ಟರ್ ಮಾಡಲು, ವಿಂಗಡಿಸಲು ಮತ್ತು ಮರುಆಕಾರಿಸಲು ಪ್ರಬಲ ಸಾಧನಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ.
  • ಡೇಟಾ ವಿಶ್ಲೇಷಣೆ: ಡೇಟಾವನ್ನು ಗುಂಪು ಮಾಡಲು (group by), ಒಟ್ಟುಗೂಡಿಸಲು (aggregate) ಮತ್ತು ಸಂಕೀರ್M ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಮಾಡಲು ಸುಲಭವಾಗಿಸುತ್ತದೆ.
  • ಸಮಯ ಸರಣಿ (Time Series): ಸಮಯ-ಆಧಾರಿತ ಡೇಟಾದೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಉತ್ತಮ ಬೆಂಬಲವನ್ನು ಹೊಂದಿದೆ.

Pandas DataFrame ರಚಿಸುವುದು

ಮೊದಲು, Pandas ಲೈಬ್ರರಿಯನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಬೇಕು: pip install pandas

ನಂತರ ಅದನ್ನು ಇಂಪೋರ್ಟ್ ಮಾಡಿಕೊಳ್ಳಿ:

import pandas as pd

1. ಡಿಕ್ಷನರಿಯಿಂದ DataFrame ರಚಿಸುವುದು:

data = {
    'ಹೆಸರು': ['ರವಿ', 'ಗೋವರ್ಧನ್', 'ಮಹಾಲಕ್ಷ್ಮಿ', 'ಪಾರ್ವತಮ್ಮ'],
    'ವಯಸ್ಸು': [28, 32, 25, 45],
    'ನಗರ': ['ಹಾಸನ', 'ಬೆಂಗಳೂರು', 'ಮೈಸೂರು', 'ಚನ್ನರಾಯಪಟ್ಟಣ']
}

df = pd.DataFrame(data)
print(df)
ಔಟ್‌ಪುಟ್:
        ಹೆಸರು  ವಯಸ್ಸು            ನಗರ
0         ರವಿ      28           ಹಾಸನ
1    ಗೋವರ್ಧನ್      32        ಬೆಂಗಳೂರು
2  ಮಹಾಲಕ್ಷ್ಮಿ      25          ಮೈಸೂರು
3  ಪಾರ್ವತಮ್ಮ      45  ಚನ್ನರಾಯಪಟ್ಟಣ

CSV ಫೈಲ್‌ನಿಂದ ಡೇಟಾ ಓದುವುದು

ಡೇಟಾ ವಿಶ್ಲೇಷಣೆಯಲ್ಲಿ, ಸಾಮಾನ್ಯವಾಗಿ CSV (Comma-Separated Values) ಫೈಲ್‌ಗಳಿಂದ ಡೇಟಾವನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ.

employees.csv ಎಂಬ ಫೈಲ್ ಅನ್ನು ಪರಿಗಣಿಸಿ:

id,name,department,salary
1,ರವಿಕಿರಣ,IT,80000
2,ನಿಶ್ಚಲ,HR,65000
3,ಗೋವರ್ಧನ್,Finance,75000
4,ಮಹಾಲಕ್ಷ್ಮಿ,IT,82000

ಈ ಫೈಲ್ ಅನ್ನು ಓದಲು read_csv() ಫಂಕ್ಷನ್ ಬಳಸಲಾಗುತ್ತದೆ:

# employees.csv ಫೈಲ್‌ನಿಂದ ಡೇಟಾ ಓದುವುದು
emp_df = pd.read_csv("employees.csv")
print(emp_df)

ಡೇಟಾವನ್ನು ಪರಿಶೀಲಿಸುವುದು (Inspecting Data)

ಡೇಟಾಫ್ರೇಮ್ ಲೋಡ್ ಮಾಡಿದ ನಂತರ, ಅದರ ರಚನೆ ಮತ್ತು ವಿಷಯವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಮುಖ್ಯ.

# ಮೊದಲ 5 ಸಾಲುಗಳನ್ನು ತೋರಿಸಿ
print(emp_df.head())

# ಕೊನೆಯ 5 ಸಾಲುಗಳನ್ನು ತೋರಿಸಿ
print(emp_df.tail())

# ಡೇಟಾಫ್ರೇಮ್‌ನ ಮಾಹಿತಿ (ಕಾಲಂಗಳು, ಡೇಟಾ ಪ್ರಕಾರಗಳು, ಮೆಮೊರಿ ಬಳಕೆ)
print(emp_df.info())

# ಸಂಖ್ಯಾತ್ಮಕ ಕಾಲಂಗಳ ಅಂಕಿಅಂಶಗಳ ಸಾರಾಂಶ (ಸರಾಸರಿ, ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಡಿವಿಯೇಷನ್, ಇತ್ಯಾದಿ)
print(emp_df.describe())

ಡೇಟಾ ಆಯ್ಕೆ (Selecting Data)

DataFrame ನಿಂದ ನಿರ್ದಿಷ್ಟ ಡೇಟಾವನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಹಲವು ವಿಧಾನಗಳಿವೆ.

1. ಕಾಲಂ ಆಯ್ಕೆ:

# 'name' ಕಾಲಂ ಅನ್ನು ಮಾತ್ರ ಆಯ್ಕೆ ಮಾಡಿ
names = emp_df['name']
print(names)

# ಅನೇಕ ಕಾಲಂಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಿ
details = emp_df[['name', 'salary']]
print(details)

2. ಸಾಲು ಆಯ್ಕೆ (.loc ಮತ್ತು .iloc): * .loc: ಲೇಬಲ್ ಆಧಾರಿತ ಇಂಡೆಕ್ಸಿಂಗ್ (Label-based indexing). * .iloc: ಪೂರ್ಣಾಂಕ ಆಧಾರಿತ ಇಂಡೆಕ್ಸಿಂಗ್ (Integer-based indexing).

# ಇಂಡೆಕ್ಸ್ 1 ರಲ್ಲಿರುವ ಸಾಲನ್ನು ಆಯ್ಕೆ ಮಾಡಿ (ಲೇಬಲ್ ಬಳಸಿ)
row_1 = emp_df.loc[1]
print(row_1)

# ಇಂಡೆಕ್ಸ್ 0 ಮತ್ತು 2 ರಲ್ಲಿರುವ ಸಾಲುಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಿ
rows_0_2 = emp_df.loc[[0, 2]]
print(rows_0_2)

# ಮೊದಲ ಸಾಲನ್ನು ಆಯ್ಕೆ ಮಾಡಿ (ಪೂರ್ಣಾಂಕ ಬಳಸಿ)
first_row = emp_df.iloc[0]
print(first_row)

# ಮೊದಲ 3 ಸಾಲುಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಿ
first_3_rows = emp_df.iloc[0:3]
print(first_3_rows)

ಡೇಟಾ ಫಿಲ್ಟರಿಂಗ್ (Filtering Data)

ಷರತ್ತುಗಳ ಆಧಾರದ ಮೇಲೆ ಡೇಟಾವನ್ನು ಫಿಲ್ಟರ್ ಮಾಡುವುದು.

# 80000 ಕ್ಕಿಂತ ಹೆಚ್ಚು ಸಂಬಳ ಇರುವ ಉದ್ಯೋಗಿಗಳು
high_earners = emp_df[emp_df['salary'] > 75000]
print(high_earners)

# 'IT' ವಿಭಾಗದಲ್ಲಿ ಕೆಲಸ ಮಾಡುವ ಉದ್ಯೋಗಿಗಳು
it_employees = emp_df[emp_df['department'] == 'IT']
print(it_employees)

ನೈಜ-ಪ್ರಪಂಚದ ಉದಾಹರಣೆ: ಇಲಾಖಾವಾರು ಸರಾಸರಿ ಸಂಬಳ

ಒಂದು ಕಂಪನಿಯ ಉದ್ಯೋಗಿಗಳ ಡೇಟಾವನ್ನು ಬಳಸಿ, ಪ್ರತಿ ಇಲಾಖೆಯ (department) ಸರಾಸರಿ ಸಂಬಳವನ್ನು ಕಂಡುಹಿಡಿಯೋಣ.

# ಉದ್ಯೋಗಿಗಳ ಡೇಟಾ
data = {
    'name': ['ರವಿಕಿರಣ', 'ನಿಶ್ಚಲ', 'ಗೋವರ್ಧನ್', 'ಮಹಾಲಕ್ಷ್ಮಿ', 'ಪಾರ್ವತಮ್ಮ', 'ರಾಕೇಶ್'],
    'department': ['IT', 'HR', 'Finance', 'IT', 'HR', 'Finance'],
    'salary': [80000, 65000, 75000, 82000, 68000, 78000]
}
df = pd.DataFrame(data)

# 'department' ಮೂಲಕ ಗುಂಪು ಮಾಡಿ ಮತ್ತು ಪ್ರತಿ ಗುಂಪಿನ ಸರಾಸರಿ ಸಂಬಳವನ್ನು ಲೆಕ್ಕ ಹಾಕಿ
average_salary_by_dept = df.groupby('department')['salary'].mean()

print("ಪ್ರತಿ ಇಲಾಖೆಯ ಸರಾಸರಿ ಸಂಬಳ:")
print(average_salary_by_dept)
ಔಟ್‌ಪುಟ್:
ಪ್ರತಿ ಇಲಾಖೆಯ ಸರಾಸರಿ ಸಂಬಳ:
department
Finance    76500.0
HR         66500.0
IT         81000.0
Name: salary, dtype: float64
Pandas, ಡೇಟಾ ವಿಜ್ಞಾನಿಗಳು ಮತ್ತು ವಿಶ್ಲೇಷಕರಿಗೆ ತಮ್ಮ ದೈನಂದಿನ ಕೆಲಸದಲ್ಲಿ ಡೇಟಾವನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ನಿರ್ವಹಿಸಲು ಮತ್ತು ವಿಶ್ಲೇಷಿಸಲು ಸಹಾಯ ಮಾಡುವ ಒಂದು ಅನಿವಾರ್ಯ ಸಾಧನವಾಗಿದೆ.