2016-09-08 6 views
6

अधिक अनुक्रमणिका श्रेणियों (जैसे 10:12 और 25:28) द्वारा डेटाफ्रेम को टुकड़ा करने के लिए पाइथोनिक तरीका क्या है? मैं एक और अधिक सुरुचिपूर्ण तरीके से इस हैं:एकाधिक इंडेक्स श्रेणियों द्वारा पाइथन पांडा स्लाइस डेटाफ्रेम

df = pd.DataFrame({'a':range(10,100)}) 
df.iloc[[i for i in range(10,12)] + [i for i in range(25,28)]] 

परिणाम:

 a 
10 20 
11 21 
25 35 
26 36 
27 37 

कुछ इस तरह अधिक सुरुचिपूर्ण होगा:

df.iloc[(10:12, 25:28)] 

धन्यवाद!

उत्तर

17

आप numpy के r_ "टुकड़ा करने की क्रिया चाल" का उपयोग कर सकते हैं:

df = pd.DataFrame({'a':range(10,100)}) 
df.iloc[pd.np.r_[10:12, 25:28]] 

देता है:

 a 
10 20 
11 21 
25 35 
26 36 
27 37 
+0

इससे इससे अधिक संक्षिप्त नहीं मिलता है। इस उद्देश्य के लिए 'np.r_' बनाया गया था। और, मैंने कुछ सीखा। इच्छा है कि मैं +2 कर सकता था। – piRSquared

+1

ध्यान देने योग्य एक बात: ऋणात्मक अनुक्रमण प्राप्त करने के लिए (यानी 'df.iloc [-2:]' के बराबर), आपको शून्य शामिल करना होगा: 'df.iloc [pd.np.r _ [: 2, -2: 0]] ' –

0

आप समारोह ISIN पांडा का लाभ ले सकते।

df = pd.DataFrame({'a':range(10,100)}) 
ls = [i for i in range(10,12)] + [i for i in range(25,28)] 
df[df.index.isin(ls)] 


    a 
10 20 
11 21 
25 35 
26 36 
27 37 
संबंधित मुद्दे