पांडो: रेन्डेक्स अनसॉर्ट्स डाटाफ्रेम - पायथन, सॉर्टिंग, पांडा, रीइन्डेक्स

मुझे कुछ परेशानी हो रही है और फिर पंडों में अपना सूचकांक रीसेट कर रहा हूं:

dfm = dfm.sort(["delt"],ascending=False)
dfm = dfm.reindex(index=range(1,len(dfm)))

डेटाफ़्रेम मैं रीइन्डेक्स होने के बाद बिना रिटर्न किए। मेरा अंतिम लक्ष्य 1 -> len (dfm) से इंडेक्स नंबरों के साथ एक सॉर्ट किए गए डेटाफ्रेम का होना है, इसलिए यदि ऐसा करने का बेहतर तरीका है, तो मैं मन नहीं करूंगा,

धन्यवाद!

उत्तर:

उत्तर № 1 के लिए 37

रीइंडेक्सिंग के बजाय, बस वास्तविक सूचकांक को बदलें:

dfm.index = range(1,len(dfm) + 1)

तब यह क्रम नहीं बदलेगा, सिर्फ सूचकांक


उत्तर के लिए 7 № 2

मुझे लगता है कि आप गलतफहमी क्या है reindex कर देता है। यह पास किए गए अक्ष के साथ मूल्यों का चयन करने के लिए पारित सूचकांक का उपयोग करता है, फिर साथ भरता है NaN जहाँ भी आपका उत्तीर्ण सूचकांक वर्तमान सूचकांक के साथ मेल नहीं खाता है। आप जिस चीज में रुचि रखते हैं वह सिर्फ सूचकांक को कुछ और करने के लिए सेट कर रहा है:

In [12]: df = DataFrame(randn(10, 2), columns=["a", "delt"])

In [13]: df
Out[13]:
a   delt
0  0.222 -0.964
1  0.038 -0.367
2  0.293  1.349
3  0.604 -0.855
4 -0.455 -0.594
5  0.795  0.013
6 -0.080 -0.235
7  0.671  1.405
8  0.436  0.415
9  0.840  1.174

In [14]: df.reindex(index=arange(1, len(df) + 1))
Out[14]:
a   delt
1   0.038 -0.367
2   0.293  1.349
3   0.604 -0.855
4  -0.455 -0.594
5   0.795  0.013
6  -0.080 -0.235
7   0.671  1.405
8   0.436  0.415
9   0.840  1.174
10    NaN    NaN

In [16]: df.index = arange(1, len(df) + 1)

In [17]: df
Out[17]:
a   delt
1   0.222 -0.964
2   0.038 -0.367
3   0.293  1.349
4   0.604 -0.855
5  -0.455 -0.594
6   0.795  0.013
7  -0.080 -0.235
8   0.671  1.405
9   0.436  0.415
10  0.840  1.174

अगर आप चाहें तो याद रखें len(df) सूचकांक में होने के लिए आपको पायथन के बाद से समापन बिंदु पर 1 जोड़ना होगा पर्वतमाला का निर्माण करते समय समापन बिंदु शामिल नहीं हैं


संबंधित सवाल
सबसे लोकप्रिय