প্যান্ডাস ডেটাফ্রেমে নির্দিষ্ট পজিশনে নতুন কলাম যোগ করার জন্য insert() মেথড ব্যবহার করা হয়। এটি ইন-প্লেস (in-place) পরিবর্তন আনে।
সিনট্যাক্স
df.insert(loc, column, value)
# loc: ইনডেক্স পজিশন (০-ভিত্তিক)
# column: নতুন কলামের নাম
# value: স্ক্যালার, সিরিজ, অ্যারে বা লিস্ট
উদাহরণ: df1 থেকে Car কলাম নিয়ে df2-তে যোগ করা
import pandas as pd
# প্রথম ডেটাফ্রেম
df1 = pd.DataFrame({
"Car": ["Audi", "Lamborghini", "BMW", "Lexus"],
"Place": ["US", "UK", "India", "Australia"],
"Units": [200, 500, 800, 1000]
})
# دوم д dataframe
df2 = pd.DataFrame({
"Model": [2018, 2019, 2020, 2021],
"CC": [3000, 2800, 3500, 3300]
})
print("ডেটাফ্রেম ১:")
print(df1)
print("\nডেটাফ্রেম ২:")
print(df2)
# df1 থেকে Car কলাম নিয়ে df2-তে ইনসার্ট (পজিশন ১)
car_col = df1["Car"]
df2.insert(1, "LuxuryCar", car_col)
print("\nআপডেটেড ডেটাফ্রেম ২:")
print(df2)
আউটপুট
ডেটাফ্রেম ১:
Car Place Units
0 Audi US 200
1 Lamborghini UK 500
2 BMW India 800
3 Lexus Australia 1000
ডেটাফ্রেম ২:
CC Model
0 3000 2018
1 2800 2019
2 3500 2020
3 3300 2021
আপডেটেড ডেটাফ্রেম ২:
CC LuxuryCar Model
0 3000 Audi 2018
1 2800 Lamborghini 2019
2 3500 BMW 2020
3 3300 Lexus 2021
বিকল্প পদ্ধতিগুলো
১. সরাসরি অ্যাসাইনমেন্ট (শেষে যোগ হয়)
df2['LuxuryCar'] = df1['Car'].values # .values দিয়ে ইনডেক্স অ্যালাইনমেন্ট বাঁচায়
২. assign() মেথড (নতুন ডেটাফ্রেম রিটার্ন করে)
df2_new = df2.assign(LuxuryCar=df1['Car'].values)
৩. merge() / join() (কি-ভিত্তিক)
# যদি কোনো কমন কি থাকে
df2 = df2.merge(df1[['Car']], left_index=True, right_index=True)
দ্রষ্টব্য
insert()ইন-প্লেস,assign()নতুন অবজেক্ট রিটার্ন করে- লিস্ট/সিরিজ দিয়ে অ্যাসাইন করার সময় দৈর্ঘ্য মিলতে হবে
.valuesবা.to_numpy()ব্যবহার করলে ইনডেক্স অ্যালাইনমেন্ট বাঁচায় (পজিশনাল ম্যাপ)