2013-11-21 38 views
80

में पांडा मल्टी सूचकांक मुड़ें 2 सूचकांक के स्तर के साथ एक dataframe है:स्तंभ

      value 
Trial measurement 
    1    0  13 
        1   3 
        2   4 
    2    0  NaN 
        1  12 
    3    0  34 

कौन सा मैं इस में बदल करना चाहते हैं:

Trial measurement  value 

    1    0  13 
    1    1   3 
    1    2   4 
    2    0  NaN 
    2    1  12 
    3    0  34 

कैसे मैं सबसे अच्छा यह कर सकते हैं?

मुझे इसकी आवश्यकता है क्योंकि मैं डेटा as instructed here डेटा एकत्र करना चाहता हूं, लेकिन अगर मैं इंडेक्स के रूप में उपयोग में हूं तो मैं अपने कॉलम का चयन नहीं कर सकता।

+2

डुप्लिकेट: http://stackoverflow.com/questions/18624039/pandas-reset-index-on-series-to-remove-multiindex आप पहले सुझाव चाहते हैं। '.reset_index()' – TomAugspurger

+1

बहुत धन्यवाद, मैं वास्तव में इसके लिए बहुत कुछ ब्राउज़ करता हूं, लेकिन "कॉलम में मल्टीइंडेक्स बना देता हूं" और इसी तरह के प्रश्नों को हमेशा मुझे थ्रेड मिलते हैं जो उनके डेटाफ्रेम को पिट करना चाहते हैं ... – TheChymera

+2

हमेशा जवाब ढूंढना आसान होता है आप इसे पहले ही जानते हैं :) – TomAugspurger

उत्तर

99

reset_index() एक पांडा डेटाफ्रेम विधि है जो इंडेक्स मानों को डेटाफ्रेम में कॉलम के रूप में स्थानांतरित कर देगी। पैरामीटर के लिए डिफ़ॉल्ट सेटिंग ड्रॉप = गलत (जो इंडेक्स मान को कॉलम के रूप में रखेगी)।

df.reset_index(inplace=True) 
5

यह वास्तव में अपने मामले पर लागू नहीं होता, लेकिन यह (5 मिनट पहले मेरे जैसे) दूसरों के लिए उपयोगी हो सकता है पता करने के लिए:

तुम सब DataFrame के नाम के बाद .reset_index(inplace=True) जोड़ सकता हूँ करने के लिए है

      value 
Trial  Trial 
    1    0  13 
        1   3 
        2   4 
    2    0  NaN 
        1  12 
    3    0  34 

df.reset_index(inplace=True) कॉलम कि नाम साझा नहीं कर सकते बनाई गई है कारण असफल हो जायेगी: किसी के multindex इस तरह एक ही नाम है।

      value 
Trial measurement  

    1    0  13 
    1    1   3 
    1    2   4 
    2    0  NaN 
    2    1  12 
    3    0  34 

और फिर df.reset_index(inplace=True) एक आकर्षण की तरह काम करेगा:

तो फिर आप पाने के लिए df.index = df.index.set_names(['Trial', 'measurement']) साथ multindex नाम बदलने की जरूरत है।

मुझे live_date नामक डेटाटाइम-कॉलम पर वर्ष और महीने के समूह के बाद इस समस्या का सामना करना पड़ा। फिर दोनों वर्ष और महीने को live_date नाम दिया गया था, और मुझे मिले सुझावों को इंडेक्स में एक स्तर छोड़ना था, जो मैं नहीं कर सका।

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