2015-03-03 33 views
6
में दिए गए सूचकांक की स्थिति प्राप्त

चलो कहते हैं कि मैं इस तरह एक DataFrame करते हैं:पांडा DataFrame

df 
    A B 
5 0 1 
18 2 3 
125 4 5 

जहां 5, 18, 125 सूचकांक हैं

मैंने पहले (या बाद) लाइन प्राप्त करना चाहते हैं एक निश्चित सूचकांक। उदाहरण के लिए, मेरे पास इंडेक्स 18 है (उदाहरण के लिए df[df.A==2].index करके), और मैं पहले लाइन प्राप्त करना चाहता हूं, और मुझे नहीं पता कि इस लाइन में 5 एक इंडेक्स के रूप में है।

2 उप सवाल:

  • मैं कैसे सूचकांक 18 की स्थिति प्राप्त कर सकते हैं? df.loc[18].get_position() की तरह कुछ जो लौट 1 तो मैं df.iloc[df.loc[18].get_position()-1]
  • साथ पहले लाइन तक पहुँच सकता है होगा वहाँ एक और समाधान, विकल्प -C, -A या ग्रेप साथ -B की तरह एक सा है?

उत्तर

10

अपने पहले प्रश्न के लिए:

base = df.index.get_indexer_for((df[df.A == 2].index)) 

या वैकल्पिक रूप से

base = df.index.get_loc(18) 

आसपास के लोगों को प्राप्त करने के लिए:

mask = pd.Index(base).union(pd.Index(base - 1)).union(pd.Index(base + 1)) 

मैं इंडेक्स और यूनियनों का इस्तेमाल किया डुप्लिकेट को निकालने के। आप उन्हें रखना चाहते हैं, इस मामले में आप np.concatenate

पहली या आखिरी पंक्तियों पर मैचों के साथ सावधान रहें :)

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