2013-06-21 9 views
127

क्या आप जानते हैं कि डेटाफ्रेम के इंडेक्स कॉलम को सरणी के रूप में कैसे प्राप्त किया जाए? मेरे पास एक CSV फ़ाइल के "एक्सेशन" कॉलम में प्रवेश संख्याओं की एक सूची है, जिसे मैंने पांडस में आयात किया था, और आयात के दौरान, मैंने इंडेक्स को "एक्सेशन" कॉलम पर सेट किया था। अब, मुझे बाद में चरण में लेबल का एक सेट होने के लिए "एक्सेशन" कॉलम चाहिए, लेकिन मुझे नहीं पता कि इसे कैसे निकाला जाए।पांडा - डेटा फ्रेम इंडेक्स को सरणी के रूप में कैसे प्राप्त करें

उत्तर

173

आप values विशेषता का उपयोग करना चाहिए:

In [1]: df = pd.DataFrame(index=['a', 'b']) 

In [2]: df.index.values 
Out[2]: array(['a', 'b'], dtype=object) 

यह तक पहुँचता है कैसे डेटा पहले से ही संग्रहीत किया जाता है, तो एक रूपांतरण के लिए कोई आवश्यकता नहीं है।
नोट: यह विशेषता कई अन्य पांडा वस्तुओं के लिए भी उपलब्ध है।

+0

क्या यह दृष्टिकोण सुनिश्चित करता है कि इंडेक्स का क्रम बनाए रखा जाए? –

+5

@ डोनोवन थॉमसन हाँ! –

47

आप इंडेक्स ऑब्जेक्ट तक पहुंचने के लिए df.index का उपयोग कर सकते हैं और फिर df.index.tolist() का उपयोग कर सूची में मान प्राप्त कर सकते हैं।

+0

यह instanceMethod वापस आती है और नहीं एक सूची सरणी –

+4

@VShreyas, कैसे df.index.values.tolist के बारे में 'का एक तत्व होना चाहिए () ' – LancelotHolmes

+0

यह ठीक होना चाहिए –

14

पांडा 0.13 चूंकि आप get_values उपयोग कर सकते हैं:

df.index.get_values() 
+4

क्या इस और .values ​​के बीच कोई अंतर है? (मैंने संस्करण जानकारी अपडेट की है, क्योंकि यह फ़ंक्शन 0.13.0 दस्तावेज़ों से दिखाई देता है।) –

+0

@ एंडी हेडन: क्या कोई अंतर नहीं है .get_values ​​केवल वर्तमान मान प्राप्त करने का आधिकारिक तरीका है .values ​​(उदाहरण के लिए एक बहु- इंडेक्स) इंडेक्स वैल्यू वापस कर सकता है जिसके लिए पंक्तियां या कॉलम हटा दिए गए हैं? –

+0

@EzekielKruglick तो यह हमेशा एक प्रति है? दस्तावेज़ीकरण से जुड़ा हुआ बहुत हल्का है, मुझे नहीं लगता था कि आपको इस तरह की नकल मिलती है (भले ही वे एमआई में हों, वे अंतराल में नहीं होंगे) एक उदाहरण देखने के लिए बहुत अच्छा होगा जो इसे प्रदर्शित करता है! –

24

आप एक बहु सूचकांक dataframe साथ काम कर रहे हैं, तो आप केवल बहु सूचकांक में से एक नाम का स्तंभ निकालने में रुचि हो सकती। आप के रूप में

df.index.get_level_values('name_sub_index') 

और पाठ्यक्रम name_sub_index की यह कर सकते हैं FrozenListdf.index.names

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