Pandas-এ shift() মেথড ব্যবহার করে পুরো DataFrame রি-রাইট না করেই একটি DataFrame-এর কলামগুলো শিফট করা যায়। shift() নিচের প্যারামিটারগুলো নেয়
shift(self, periods=1, freq=None, axis=0, fill_value=None)
- periods শিফট করার পিরিয়ড সংখ্যা। এটি নেগেটিভ নাম্বারও নিতে পারে।
- axis এটি একটি বুলিয়ান ভ্যালু নেয়; ০ যদি আপনি ইন্ডেক্স শিফট করতে চান এবং ১ যদি কলাম শিফট করতে চান
- fill_value এটি অনুপস্থিত মান রিপ্লেস করবে।
একটি উদাহরণ নিই এবং দেখি কীভাবে এই shift() মেথডটি ব্যবহার করতে হয়।
ধাপসমূহ
- একটি дву-মাত্রিক, সাইজ-মিউটেবল, পোটেনশিয়ালি হেটেরোজেনাস ট্যাবুলার ডেটা, df তৈরি করুন।
- ইনপুট DataFrame, df প্রিন্ট করুন।
- একটি কলাম নির্বাচন করুন এবং df["column_name]=df.column_name.shift() ব্যবহার করে শিফট করুন
- আপডেট করা DataFrame প্রিন্ট করুন।
উদাহরণ
import pandas as pd
df = pd.DataFrame(
dict(
name=['John', 'Jacob', 'Tom', 'Tim', 'Ally'],
marks=[89, 23, 100, 56, 90],
subjects=["Math", "Physics", "Chemistry", "Biology", "English"]
)
)
print("Input DataFrame is:\n", df)
df["name"] = df.name.shift(1)
print("After shifting column name by 1:\n", df)
df["marks"] = df.marks.shift(2)
print("After shifting column marks by 2:\n", df)
df["subjects"] = df.subjects.shift(-1)
print("After shifting column subjects by -1:\n", df)
আউটপুট
Input DataFrame is:
name marks subjects
0 John 89 Math
1 Jacob 23 Physics
2 Tom 100 Chemistry
3 Tim 56 Biology
4 Ally 90 English
After shifting column name by 1:
name marks subjects
0 NaN 89 Math
1 John 23 Physics
2 Jacob 100 Chemistry
3 Tom 56 Biology
4 Tim 90 English
After shifting column marks by 2:
name marks subjects
0 NaN 100 Math
1 John 100 Physics
2 Jacob 89 Chemistry
3 Tom 23 Biology
4 Tim 100 English
After shifting column subjects by -1:
name marks subjects
0 NaN 100 Physics
1 John 100 Chemistry
2 Jacob 89 Biology
3 Tom 23 English
4 Tim 100 NaN