ডাটাফ্রেমের বা সিরিজের প্রতিটি আইটেম ধরে কোনো কাজ করার দরকার হলে 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)
Pythondf_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)
PythonOutput:

যদি সব গুলো ডেটা নাম্বার না হয়
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
PythonOutput:

Write a caption