मान लीजिए कि मेरे पास pandas.DataFrame
df
है। df
के कॉलम अलग-अलग व्यक्तियों का प्रतिनिधित्व करते हैं और इंडेक्स अक्ष समय का प्रतिनिधित्व करता है, इसलिए (i, j) प्रविष्टि समय अवधि के लिए व्यक्तिगत जे का अवलोकन है, और हम मान सकते हैं कि सभी डेटा float
संभवतः NaN
मानों के साथ टाइप कर सकते हैं।पाइथन पांडस सहसंबंध मैट्रिक्स प्रविष्टियों के लिए सामान्य अवलोकन गणना देखने का तेज़ तरीका
मेरे मामले में, मेरे पास लगभग 14,000 कॉलम और कुछ सौ पंक्तियां हैं।
pandas.corr
मुझे 14,000-बाय -14,000 सहसंबंध मैट्रिक्स वापस दे देगा और यह मेरे आवेदन के लिए समय का प्रदर्शन ठीक है।
लेकिन मैं यह भी जानना चाहूंगा कि प्रत्येक व्यक्ति की जोड़ी (j_1, j_2) के लिए, कितने गैर-शून्य अवलोकन सहसंबंध गणना में चला गया, इसलिए मैं खराब डेटा कवरेज से पीड़ित सहसंबंध कक्षों को अलग कर सकता हूं।
not_null_locations = pandas.notnull(df).values.astype(int)
common_obs = pandas.DataFrame(not_null_locations.T.dot(not_null_locations),
columns=df.columns, index=df.columns)
स्मृति पदचिह्न और इस की गति एक सा समस्याग्रस्त किया जा करने के लिए शुरू:
सबसे अच्छा मैं के साथ आने कर लिया है निम्नलिखित है।
pandas
के साथ सामान्य अवलोकनों को प्राप्त करने का कोई तेज़ तरीका है?
आप आंशिक रूप से (उदाहरण के लिए अपने एक कटऑफ जहां की आवश्यकता है कि टिप्पणियों की न्यूनतम संख्या corr के लिए गुजर '' min_periods'' द्वारा इस का समाधान कर सकते हैं, सीधे जवाब नहीं देता, लेकिन आप एक 'काफी अच्छा' दे सकते हैं का जवाब – Jeff
यह एक अच्छा सुझाव है, लेकिन मैं एक ऐसे उत्पादन प्रणाली में काम कर रहा हूं जिसके लिए पांडस संस्करण 0.8.0 की आवश्यकता है, और ऐसा लगता है कि 'min_periods' को एक नए संस्करण में जोड़ा गया था। मैं पुराने संस्करण के बारे में कुछ नहीं कर सकता, मैं हूं डर। – ely
यदि आप linux (जहां बहुत आसान) पर कोड * (और recompile) में * जोड़ सकते हैं ..... यह केवल कुछ पंक्ति परिवर्तन (निश्चित रूप से 'उत्पादन' शायद इसे रोक सकता है ....) – Jeff