পান্ডাতে আমি কীভাবে একটি নির্দিষ্ট কলামটির নাম পরিবর্তন করব?
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()
পূর্ববর্তীটি আরও প্রাকৃতিক এবং নিখরচায় প্রবাহিত বাক্য গঠন।