সমস্যা বিবরণ
একটি প্যান্ডাস সিরিজ আছে যাতে দশমিক সংখ্যা (float) রয়েছে। লক্ষ্য হলো সিরিজের প্রতিটি এলিমেন্টকে নিকটতম পূর্ণসংখ্যায় রাউন্ড করা।
ইনপুট সিরিজ
0 1.3
1 2.6
2 3.9
3 4.8
4 5.6
সমাধান ১: বিল্ট-ইন round() মেথড (সরাসরি ও দ্রুত)
প্যান্ডাস সিরিজের .round() মেথড সরাসরি প্রতিটি এলিমেন্ট রাউন্ড করে দেয়।
import pandas as pd
l = [1.3, 2.6, 3.9, 4.8, 5.6]
data = pd.Series(l)
print("রাউন্ড করা সিরিজ:")
print(data.round())
সমাধান ২: লুপ ও পাইথনের round() ফাংশন ব্যবহার করে
যদি আপনি ম্যানুয়ালি করতে চান তবে লুপ ব্যবহার করে করা যায়।
import pandas as pd
import math
l = [1.3, 2.6, 3.9, 4.8, 5.6]
data = pd.Series(l)
ls = []
for i, j in data.items():
ls.append(round(j)) # বা math.round(j)
result = pd.Series(ls)
print("লুপ দিয়ে রাউন্ড করা সিরিজ:")
print(result)
আউটপুট (দুই পদ্ধতিরই)
0 1.0
1 3.0
2 4.0
3 5.0
4 6.0
dtype: float64
দ্রষ্টব্য: পাইথনের round() "banker's rounding" বা "round half to even" নিয়ম মেনে চলে (যেমন round(2.5) = 2, round(3.5) = 4)। প্যান্ডাসের .round()ও একই নিয়ম মেনে চলে।