1. Home
  2. Docs
  3. pandas
  4. apply()

apply()

ডাটাফ্রেমের বা সিরিজের প্রতিটি আইটেম ধরে কোনো কাজ করার দরকার হলে apply() মেথড নিয়ে কাজ করতে হয়।

বোঝার জন্য নিচের উদাহরণটি দেখি

import pandas as pd

# Create a sample DataFrame
data = {
    'Name': ['John', 'Alice', 'Bob', 'Jane'],
    'Exam1': [80, 90, 75, 85],
    'Exam2': [70, 85, 80, 95],
    'Exam3': [90, 80, 85, 70]
}

df = pd.DataFrame(data)
Python

ডাটাফ্রেমটি দেখতে নিচের মত

Write a caption

আমি চাচ্ছি ডাটাফ্রেমের প্রতিটা এলিমেন্ট কে ২ দ্বারা গুন করতে

# Apply a function to every element in the DataFrame
df_applied = df.apply(lambda x:x*2)
Python

df_applied ডাটাফ্রেমটি এখন নিচের মত ডেটা বহন করে

Write a caption

প্রত্যেকটি রো অনুযায়ী কাজ করা

import pandas as pd

# Create a sample DataFrame
data = {
    'Name': ['John', 'Alice', 'Bob', 'Jane'],
    'Bangla': [80, 90, 75, 85],
    'English': [70, 85, 80, 95],
    'Math': [90, 80, 85, 70]
}

df = pd.DataFrame(data)
Python

ডাটাফ্রেমটি দেখতে নিচের মত

Write a caption

আমি চাচ্ছি একটা নতুন কলাম তৈরী করতে total নামে। প্রত্যেকটা রো এর তিনটি কলাম (‘bangla’,’english’,’math’ ) এর যোগফল total নামে কলামে বসবে

df['Total'] = df.apply(lambda row : row[['Bangla','English','Math']].sum(),axis=1)
Python

ডাটাফ্রেমটি এখন নিচের মত ডেটা বহন করে

Write a caption

এখানে একটি প্যারামিটার নিয়েছি axis = ১ এর মানে প্রত্যেকটি রো ধরে ধরে কাজ করবে। যদি ০ দিতাম তাহলে কলাম ধরে কাজ করতো।

apply() axis প্রাকটিক্যাল

যদি সব গুলো ডেটা নাম্বার হয়

import pandas as pd

# Create a sample DataFrame with string columns
data = {
    'A': ['1', '2', '3'],
    'B': ['4', '5', '6'],
    'C': ['7', '8', '9']
}

df = pd.DataFrame(data)

# Convert string columns to numeric data types
df = df.astype(int)

# Sum row-wise using apply() and axis=1
df_row_sum = df.apply(lambda row: row.sum(), axis=1)
print("Row-wise sum:\n", df_row_sum)

# Sum column-wise using apply() and axis=0
df_column_sum = df.apply(lambda column: column.sum(), axis=0)
print("\nColumn-wise sum:\n", df_column_sum)
Python

Output:

যদি সব গুলো ডেটা নাম্বার না হয়

import pandas as pd

# Create a sample DataFrame
data = {
    'Name': ['John', 'Alice', 'Bob', 'Jane'],
    'Bangla': [80, 90, 75, 85],
    'English': [70, 85, 80, 95],
    'Math': [90, 80, 85, 70]
}

df = pd.DataFrame(data)
# Row Wise
total_row = df.apply(lambda row:row[['Bangla','English','Math']].sum(),axis=1)
total_row
# Column Wise
total_column = df.apply(lambda column:column[[1,2,3]].sum(),axis=0)
total_column
Python

Output:

Write a caption

How can we help?