উত্তর:
করুন:
df['index1'] = df.index
বা .reset_index
,:
df.reset_index(level=0, inplace=True)
সুতরাং, যদি আপনার 3 স্তরের সূচকযুক্ত মাল্টি-ইনডেক্স ফ্রেম থাকে তবে:
>>> df
val
tick tag obs
2016-02-26 C 2 0.0139
2016-02-27 A 2 0.5577
2016-02-28 C 6 0.0303
এবং আপনি সূচকে প্রথম ( tick
) এবং তৃতীয় ( obs
) স্তরকে কলামগুলিতে রূপান্তর করতে চান , আপনি এটি করবেন:
>>> df.reset_index(level=['tick', 'obs'])
tick obs val
tag
C 2016-02-26 2 0.0139
A 2016-02-27 2 0.5577
C 2016-02-28 6 0.0303
df.reset_index(level=df.index.names, inplace=True)
কোনও একটি প্রদত্ত পুরো মাল্টিইন্ডেক্সকে কলামগুলিতে রূপান্তর করতে পারে
df.reset_index()
, যা সূচকের সম্পূর্ণতাকে কলামগুলিতে (প্রতিটি স্তরের স্তরে) সরায় এবং 0 থেকে লেন (ডিএফ) -1
df['index1'] = df.index
একটি সতর্কতা ফেরত: "একটি ডেটা ফ্রেমের একটি স্লাইসের অনুলিপিতে একটি মান সেট করার চেষ্টা করা হচ্ছে।" পরিবর্তে df.assign () ফাংশনটি ব্যবহার করুন, যেমন নীচে দেখানো হয়েছে।
আরও কিছুটা স্পষ্টতা দেওয়ার জন্য, এর সূচকে দুটি স্তরের (একটি মাল্টিআইডেক্স) একটি ডেটা ফ্রেমটি দেখি।
index = pd.MultiIndex.from_product([['TX', 'FL', 'CA'],
['North', 'South']],
names=['State', 'Direction'])
df = pd.DataFrame(index=index,
data=np.random.randint(0, 10, (6,4)),
columns=list('abcd'))
reset_index
পদ্ধতি, ডিফল্ট পরামিতি সঙ্গে বলা, কলাম সব সূচক মাত্রা পরিবর্তন করে এবং একটি সহজ ব্যবহার RangeIndex
নতুন সূচক হিসাবে।
df.reset_index()
level
কোন সূচক স্তরগুলি কলামে রূপান্তরিত হয় তা নিয়ন্ত্রণ করতে পরামিতি ব্যবহার করুন । যদি সম্ভব হয় তবে স্তরটির নামটি ব্যবহার করুন যা আরও স্পষ্ট। যদি কোনও স্তরের নাম না থাকে তবে আপনি প্রতিটি স্তরটিকে তার পূর্ণসংখ্যার অবস্থান দ্বারা উল্লেখ করতে পারেন, যা বাইরে থেকে 0 থেকে শুরু হয়। আপনি এখানে একটি স্কেলারের মান বা আপনি পুনরায় সেট করতে চান এমন সমস্ত সূচকগুলির একটি তালিকা ব্যবহার করতে পারেন।
df.reset_index(level='State') # same as df.reset_index(level=0)
বিরল ইভেন্টে আপনি সূচকটি সংরক্ষণ করতে এবং সূচিকে একটি কলামে রূপান্তর করতে চান, আপনি নিম্নলিখিতটি করতে পারেন:
# for a single level
df.assign(State=df.index.get_level_values('State'))
# for all levels
df.assign(**df.index.to_frame())
rename_axis
+ + reset_index
আপনি প্রথমে আপনার সূচকটির পছন্দসই লেবেলে নাম পরিবর্তন করতে পারেন, তারপরে একটি সিরিজে উন্নীত করতে পারেন:
df = df.rename_axis('index1').reset_index()
print(df)
index1 gi ptt_loc
0 0 384444683 593
1 1 384444684 594
2 2 384444686 596
এটি MultiIndex
ডেটাফ্রেমগুলির জন্যও কাজ করে :
print(df)
# val
# tick tag obs
# 2016-02-26 C 2 0.0139
# 2016-02-27 A 2 0.5577
# 2016-02-28 C 6 0.0303
df = df.rename_axis(['index1', 'index2', 'index3']).reset_index()
print(df)
index1 index2 index3 val
0 2016-02-26 C 2 0.0139
1 2016-02-27 A 2 0.5577
2 2016-02-28 C 6 0.0303
আপনি যদি reset_index
পদ্ধতিটি ব্যবহার করতে চান এবং আপনার বিদ্যমান সূচকটি সংরক্ষণ করতে চান তবে আপনার ব্যবহার করা উচিত:
df.reset_index().set_index('index', drop=False)
বা এটি জায়গায় পরিবর্তন করতে:
df.reset_index(inplace=True)
df.set_index('index', drop=False, inplace=True)
উদাহরণ স্বরূপ:
print(df)
gi ptt_loc
0 384444683 593
4 384444684 594
9 384444686 596
print(df.reset_index())
index gi ptt_loc
0 0 384444683 593
1 4 384444684 594
2 9 384444686 596
print(df.reset_index().set_index('index', drop=False))
index gi ptt_loc
index
0 0 384444683 593
4 4 384444684 594
9 9 384444686 596
এবং আপনি যদি সূচীর লেবেল থেকে মুক্তি পেতে চান তবে আপনি এটি করতে পারেন:
df2 = df.reset_index().set_index('index', drop=False)
df2.index.name = None
print(df2)
index gi ptt_loc
0 0 384444683 593
4 4 384444684 594
9 9 384444686 596
df1 = pd.DataFrame({"gi":[232,66,34,43],"ptt":[342,56,662,123]})
p = df1.index.values
df1.insert( 0, column="new",value = p)
df1
new gi ptt
0 0 232 342
1 1 66 56
2 2 34 662
3 3 43 123
এটি করার একটি খুব সহজ উপায় হ'ল রিসেট_ইন্ডেক্স () পদ্ধতিটি ব্যবহার করুন a একটি ডেটা ফ্রেমের জন্য df নীচের কোডটি ব্যবহার করুন:
df.reset_index(inplace=True)
এইভাবে, সূচকটি একটি কলামে পরিণত হবে এবং সত্য হিসাবে স্থানটি ব্যবহার করে এটি স্থায়ী পরিবর্তন হয়ে উঠবে।