2013-03-21 12 views
21

मैं एक डेटा फ्रेम है। तब मेरे पास एक तार्किक स्थिति है जिसका उपयोग मैं कुछ पंक्तियों को हटाकर एक और डेटा फ्रेम बना देता हूं। हालांकि नया डेटा फ्रेम हटाए गए पंक्तियों के लिए सूचकांक छोड़ देता है। मैं इसे छोड़ने के बिना अनुक्रमिक रूप से reindex कैसे प्राप्त कर सकते हैं?reindexing dataframes

0 
0 0 
1 1 
3 3 
4 4 

मैं इसे इस तरह दिखना चाहते हैं:

0 
0 0 
1 1 
2 3 
3 4 

धन्यवाद यहां एक नमूना स्पष्ट करने के लिए

import pandas as pd 
import numpy as np 

jjarray = np.array(range(5)) 
eq2 = jjarray == 2 
neq2 = np.logical_not(eq2) 

jjdf = pd.DataFrame(jjarray) 
jjdfno2 = jjdf[neq2] 

jjdfno2 

आउट कोडित है।

उत्तर

36

एक तरह से reset_index उपयोग करने के लिए है:

>>> df = pd.DataFrame(range(5)) 
>>> eq2 = df[0] == 2 
>>> df_no_2 = df[~eq2] 
>>> df_no_2 
    0 
0 0 
1 1 
3 3 
4 4 
>>> df_no_2.reset_index(drop=True) 
    0 
0 0 
1 1 
2 3 
3 4 
+0

धन्यवाद है कि मैं वास्तव में क्या ढूंढ रहा हूं। – user2133151

+7

मेरा मानना ​​है कि आप भी 'inplace = TRUE' निर्दिष्ट करने की आवश्यकता है, अन्यथा' df_no_2' प्रभावित नहीं होगा और एक नया डेटा फ्रेम के बजाय बनाया जाएगा: 'df_no_2.reset_index (ड्रॉप = सच, inplace = सच)' (पांडा V0। 15.2) – silentser

+1

आमतौर पर आप बस सिर्फ परिणाम कुछ करने के लिए आवंटित (जैसे 'df_no_2 = df_no_2.reset_index (ड्रॉप = सच)'), की तरह आप सबसे पांडा के संचालन के लिए करते हैं। – DSM

संबंधित मुद्दे