2015-11-22 13 views
5

के लिए एक Multiindex DataFrame गिर मैं एक Multiindexed DataFrame व्याख्यात्मक चर df और प्रतिक्रिया चर df_Yप्रतिगमन

# Create DataFrame for explanatory variables 
np.arrays = [['foo', 'foo', 'foo', 'bar', 'bar', 'bar'], 
      [1, 2, 3, 1, 2, 3]] 
df = pd.DataFrame(np.random.randn(6,2), 
        index=pd.MultiIndex.from_tuples(zip(*np.arrays)), 
        columns=['X1', 'X2']) 

enter image description here

# Create DataFrame for response variables 
df_Y = pd.DataFrame([1, 2, 3], columns=['Y']) 

enter image description here

मैं कर रहा हूँ से युक्त एक DataFrame युक्त है इंडेक्स 01 के साथ केवल एक स्तर डेटाफ्रेम पर रिग्रेशन करने के लिए

df_X = df.ix['foo'] # using only 'foo' 
reg = linear_model.Ridge().fit(df_X, df_Y) 
reg.coef_ 

समस्या: हालांकि Y चर के बाद से दोनों स्तरों foo और bar के लिए एक ही है, इसलिए हम दो बार के रूप में कई प्रतिगमन नमूने हो सकता है अगर हम भी bar शामिल हैं।

enter image description here

नयी आकृति प्रदान/संक्षिप्त करने के लिए सबसे अच्छा तरीका क्या है/बहुस्तरीय DataFrame unstack इसलिए हम अपने प्रतिगमन के लिए सभी डेटा का उपयोग कर सकते हैं? अन्य स्तरों कम पंक्तियों df_Y

भ्रामक शब्दों के लिए क्षमा करें, मैं सही शर्तों को लेकर अनिश्चित हूं/शब्दों हो सकता है

उत्तर

0

पहले सूचकांक छोड़ा जा सकता है और फिर एक में शामिल होने के लिए काम करेंगे:

df.index = df.index.drop_level() 
df = df.join(df_Y) 
संबंधित मुद्दे