পান্ডাতে আমি কীভাবে একটি নির্দিষ্ট কলামটির নাম পরিবর্তন করব?
V0.24 + থেকে একবারে এক (বা আরও) কলামগুলির নাম পরিবর্তন করতে,
আপনার যদি একবারে সমস্ত কলামগুলির নাম পরিবর্তন করতে হয়,
DataFrame.set_axis()পদ্ধতি সহ axis=1। একটি তালিকা মত ক্রম পাস। বিকল্পগুলি পাশাপাশি স্থান পরিবর্তনের জন্য উপলব্ধ।
rename সঙ্গে axis=1
df = pd.DataFrame('x', columns=['y', 'gdp', 'cap'], index=range(5))
df
y gdp cap
0 x x x
1 x x x
2 x x x
3 x x x
4 x x x
0.21+ দিয়ে আপনি এখন এর axisসাথে একটি পরামিতি নির্দিষ্ট করতে পারবেন rename:
df.rename({'gdp':'log(gdp)'}, axis=1)
# df.rename({'gdp':'log(gdp)'}, axis='columns')
y log(gdp) cap
0 x x x
1 x x x
2 x x x
3 x x x
4 x x x
(দ্রষ্টব্য যে renameডিফল্টরূপে স্থানে নেই, সুতরাং আপনাকে ফলাফলটি পুনরায় বরাদ্দ করতে হবে ))
এপিআইয়ের বাকি অংশগুলির সাথে ধারাবাহিকতা উন্নত করতে এই সংযোজন করা হয়েছে। নতুন axisযুক্তিটি columnsপ্যারামিটারের সাথে সাদৃশ্যপূর্ণ — তারা একই কাজ করে।
df.rename(columns={'gdp': 'log(gdp)'})
y log(gdp) cap
0 x x x
1 x x x
2 x x x
3 x x x
4 x x x
rename এছাড়াও প্রতিটি কলিমে একবার কল করা কলব্যাক গ্রহণ করে।
df.rename(lambda x: x[0], axis=1)
# df.rename(lambda x: x[0], axis='columns')
y g c
0 x x x
1 x x x
2 x x x
3 x x x
4 x x x
এই নির্দিষ্ট দৃশ্যের জন্য, আপনি ব্যবহার করতে চান
df.rename(lambda x: 'log(gdp)' if x == 'gdp' else x, axis=1)
replaceপাইথনের স্ট্রিং পদ্ধতির অনুরূপ , পান্ডাস সূচক এবং সিরিজ (কেবলমাত্র বস্তু টাইপ) str.replaceস্ট্রিং এবং রেজেক্স-ভিত্তিক প্রতিস্থাপনের জন্য একটি ("ভেক্টরাইজড") পদ্ধতি সংজ্ঞায়িত করে ।
df.columns = df.columns.str.replace('gdp', 'log(gdp)')
df
y log(gdp) cap
0 x x x
1 x x x
2 x x x
3 x x x
4 x x x
অন্যান্য পদ্ধতির মাধ্যমে এর সুবিধাটি হ'ল str.replaceরেজেক্স (ডিফল্টরূপে সক্ষম) সমর্থন করে। আরও তথ্যের জন্য ডক্স দেখুন।
set_axisসাথে একটি তালিকা পাসaxis=1
set_axisশিরোনামের তালিকা সহ কল করুন । তালিকাটি কলাম / সূচক আকারের দৈর্ঘ্যে সমান হতে হবে। set_axisমূল ডেটাফ্রেমকে ডিফল্টরূপে রূপান্তর করে তবে আপনি inplace=Falseপরিবর্তিত অনুলিপিটি নির্দিষ্ট করতে পারেন।
df.set_axis(['cap', 'log(gdp)', 'y'], axis=1, inplace=False)
# df.set_axis(['cap', 'log(gdp)', 'y'], axis='columns', inplace=False)
cap log(gdp) y
0 x x x
1 x x x
2 x x x
3 x x x
4 x x x
দ্রষ্টব্য: ভবিষ্যতে প্রকাশে, inplaceডিফল্ট হবে True।
পদ্ধতি শৃঙ্খলা যখন আমাদের কাছে ইতিমধ্যে কলামগুলি বরাদ্দ করার দক্ষ পদ্ধতি রয়েছে তখন
কেন নির্বাচন set_axisকরবেন df.columns = ...? [এই উত্তর] তে টেড পেত্রো দেখিয়েছেন, ( https://stackoverflow.com/a/46912050/4909087 )set_axis পদ্ধতিগুলি শৃঙ্খলাবদ্ধ করার চেষ্টা করার সময় দরকারী।
তুলনা করা
# new for pandas 0.21+
df.some_method1()
.some_method2()
.set_axis()
.some_method3()
বনাম
# old way
df1 = df.some_method1()
.some_method2()
df1.columns = columns
df1.some_method3()
পূর্ববর্তীটি আরও প্রাকৃতিক এবং নিখরচায় প্রবাহিত বাক্য গঠন।