ডেটা-ফ্রেমের বাছাইয়ের পরে সূচি আপডেট করুন


102

নিম্নলিখিত ডেটা ফ্রেম নিন:

x = np.tile(np.arange(3),3)
y = np.repeat(np.arange(3),3)
df = pd.DataFrame({"x": x, "y": y})
   x  y
0  0  0
1  1  0
2  2  0
3  0  1
4  1  1
5  2  1
6  0  2
7  1  2
8  2  2

আমার এটি xপ্রথমে বাছাই করা দরকার , এবং কেবল দ্বিতীয় দ্বারা y:

df2 = df.sort(["x", "y"])
   x  y
0  0  0
3  0  1
6  0  2
1  1  0
4  1  1
7  1  2
2  2  0
5  2  1
8  2  2

আমি কীভাবে সূচকটিকে এমনভাবে পরিবর্তন করতে পারি যে এটি আবার আরোহী। আমি কীভাবে এটি পেতে পারি:

   x  y
0  0  0
1  0  1
2  0  2
3  1  0
4  1  1
5  1  2
6  2  0
7  2  1
8  2  2

আমি নিম্নলিখিত চেষ্টা করেছি। দুর্ভাগ্যক্রমে, এটি সূচকটি মোটেও পরিবর্তন করে না:

df2.reindex(np.arange(len(df2.index)))

4
আপনার যদি নতুন ডিএফের প্রয়োজন না হয়, চেষ্টা করুনdf.sort(["x", "y"], ignore_index=True, inplace=True)
ইনোসেন্টবাইস্টান্ডার

উত্তর:


175

আপনি 0, 1, 2, ..., n-1 এর ডিফল্ট সূচক ফিরে পেতে সূচকটি পুনরায় সেট করতে পারেন reset_index(এবং drop=Trueআপনার ডেটাফ্রেমে অতিরিক্ত কলাম হিসাবে যুক্ত করার পরিবর্তে বিদ্যমান সূচিটি বাদ দিতে চান তা বোঝাতে ব্যবহার করুন ) :

In [19]: df2 = df2.reset_index(drop=True)

In [20]: df2
Out[20]:
   x  y
0  0  0
1  0  1
2  0  2
3  1  0
4  1  1
5  1  2
6  2  0
7  2  1
8  2  2

এটি সুপার সহায়ক ছিল। exp_data = exp_data.reindex (['বছর'], অক্ষ = 'কলাম') পুরাতন সূচি রেখেছিল। ড্রপ পুরানো সূচি অপসারণ করে।
গোল্ডেন সিংহ


10

যেহেতু পান্ডাস 1.0.0- df.sort_valuesতে একটি নতুন প্যারামিটার রয়েছে ignore_indexযা আপনার প্রয়োজন মতো ঠিক করে:

In [1]: df2 = df.sort_values(by=['x','y'],ignore_index=True)

In [2]: df2
Out[2]:
   x  y
0  0  0
1  0  1
2  0  2
3  1  0
4  1  1
5  1  2
6  2  0
7  2  1
8  2  2

আমি মনে করি এটি 1.0.0 সংস্করণে নতুন।
zyy

5

আপনি ব্যবহার করে নতুন সূচকগুলি সেট করতে পারেন set_index:

df2.set_index(np.arange(len(df2.index)))

আউটপুট:

   x  y
0  0  0
1  0  1
2  0  2
3  1  0
4  1  1
5  1  2
6  2  0
7  2  1
8  2  2

8
এটি অপ্রয়োজনীয়, reset_index()পরিবর্তে ব্যবহার করুন
স্মি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.