2015-03-30 20 views
7

द्वारा सभी स्तंभों विभाजित मैं प्रपत्रपांडा MultiIndex: एक कॉलम

    TOTEXPPQ  TOTEXPCQ  FINLWT21 
year quarter           
13 1  9.183392e+09 5.459961e+09 1271559.398 
    2  2.907887e+09 1.834126e+09 481169.672 

के एक डेटा फ्रेम results है और मैं पिछले एक करके सभी (पहले दो) स्तंभों को विभाजित करने की कोशिश कर रहा था। मेरे प्रयास

weights = results.pop('FINLWT21') 
results/weights 

था लेकिन मैं

ValueError: cannot join with no level specified and no overlapping names 

मिल कौन सा मैं नहीं मिलता है: सूचकांक में ओवरलैपिंग नाम हैं:

weights.head() 
year quarter 
13 1   1271559.398 
     2   481169.672 

वहाँ शायद करने के लिए एक बेहतर तरीका है यह विभाजन? क्या इंडेक्स को रीसेट करने के लिए की आवश्यकता है?

उत्तर

8

आप विभाजन (div विधि के साथ) के लिए अक्ष निर्दिष्ट करने के लिए है:

In [11]: results.div(weights, axis=0) 
Out[11]: 
       TOTEXPPQ  TOTEXPCQ 
year quarter 
13 1  7222.149445 4293.909517 
    2  6043.371329 3811.807158 

डिफ़ॉल्ट अक्ष = 1 और परिणाम कॉलम और वज़न 'सूचकांक नाम ओवरलैप नहीं है, इसलिए है त्रुटि संदेश

+0

मुझे बस 'ValueError मिलता है: पास किए गए मानों का आकार (1, 8) है, सूचकांक (4, 8)'। आप इसे सभी कॉलम पर कैसे मैप करते हैं? – josh

+1

@josh मुझे संदेह है कि आप आकार (8, 8) के बजाय आकार (8,) का उपयोग करना चाहते हैं? –

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