2017-01-24 11 views
5

मैं कॉलम का एक सेट है (col1, col2, col3) के बीच संबंध प्रदर्शन करने के लिए मैं df2 dataframe में कॉलम (col4, col5, col6) का एक और सेट इस दो dataframes मान लें किया है पंक्तियों की एक ही संख्या।कैसे DF1 dataframe में स्पष्ट कॉलम

मैं एक सहसंबंध तालिका कैसे उत्पन्न करूं जो डीएफ 1 और डीएफ 2 के बीच जोड़ीदार सहसंबंध करता है?

तालिका दिखेगा

तरह
col1 col2 col3 
col4 .. .. .. 
col5 .. .. .. 
col6 .. .. .. 

मैं df1.corrwith(df2) उपयोग करें, यह के रूप में आवश्यक तालिका उत्पन्न करने के लिए प्रतीत नहीं होता।

मैंने यहां एक समान प्रश्न पूछा है: How to perform Correlation between two dataframes with different column names लेकिन अब मैं स्पष्ट कॉलम से निपट रहा हूं।

यदि यह सीधे तुलनीय नहीं है, तो क्या इसे तुलनात्मक बनाने के लिए एक मानक तरीका है (get_dummies का उपयोग करना)? और यह है कि सभी क्षेत्रों को स्वचालित रूप से संसाधित करने का एक तेज़ तरीका (मान लें कि सभी स्पष्ट हैं) और उनके सहसंबंध की गणना करें?

+0

get_dummies का उपयोग चर द्विआधारी होगा। बदले में आप उन्हें सहसंबंध समारोह लागू करने में सक्षम होंगे। – epattaro

+0

पियरसन सहसंबंध के लिए डेटा को संख्यात्मक होना आवश्यक है। बाइनरी डेटा पर आपके द्वारा गणना की गई सहसंबंध का कोई अर्थ नहीं है। स्पष्ट डेटा पर एसोसिएशन उपायों की तलाश करें। – ayhan

उत्तर

4

आप सही हैं कि सहसंबंध प्राप्त करने के लिए pd.get_dummies की आवश्यकता होगी। नीचे, मैं दो स्पष्ट कॉलम के साथ कुछ नकली डेटा पैदा करेगा और उसके बाद corrwith

df = pd.DataFrame({'col1':np.random.choice(list('abcde'),100), 
        'col2':np.random.choice(list('xyz'),100)}, dtype='category') 
df1 = pd.DataFrame({'col1':np.random.choice(list('abcde'),100), 
        'col2':np.random.choice(list('xyz'),100)}, dtype='category') 

dfa = pd.get_dummies(df) 
dfb = pd.get_dummies(df1) 
dfa.corrwith(dfb) 

col1_a -0.057735 
col1_b 0.002513 
col1_c 0.137956 
col1_d -0.095050 
col1_e -0.114022 
col2_x 0.022568 
col2_y -0.081699 
col2_z -0.128350 
संबंधित मुद्दे