पंडों के डेटाफ्रेम से बाइनरी एनकोड मल्टी-वैल्युएबल श्रेणीबद्ध चर कैसे करें?


9

मान लें कि हमारे पास एक निश्चित कॉलम के लिए कई मानों के साथ निम्नलिखित डेटाफ़्रेम हैं:

    categories
0 - ["A", "B"]
1 - ["B", "C", "D"]
2 - ["B", "D"]

हम इस तरह से एक टेबल कैसे प्राप्त कर सकते हैं?

   "A"  "B"  "C"  "D"
0 - 1    1    0    0
1 - 0    1    1    1
2 - 0    1    0    1

नोट: मुझे जरूरी नहीं कि एक नई डेटाफ्रेम की जरूरत है, मैं सोच रहा हूं कि ऐसे डेटाफ्रेम को मशीन लर्निंग के लिए अधिक उपयुक्त प्रारूप में कैसे बदला जाए।

जवाबों:


7

यदि [0, 1, 2]संख्यात्मक लेबल हैं और सूचकांक नहीं है, तो pandas.DataFrame.pivot_tableकाम करता है:

[] में:
डेटा = pd.DataFrame.from_records (
    [[०, [ए ’], ०,] बी’], [१,] बी ’], [१, [सी’], [१, 'डी ’], [२,' बी’], [ 2, 'डी']],
    कॉलम = ['number_label', 'श्रेणी']]
data.pivot_table (इंडेक्स = ['नंबर_लैबेल'], कॉलम = ['कैटेगरी'], एगफंक = [लेन], fill_value = 0)
बाहर[]:
              लेन
श्रेणी एबीसीडी
number_label                       
0 1 1 0 0
१ ० १ १ १ १
२ ० १ ० १ १

यह ब्लॉग पोस्ट सहायक थी: http://pbpython.com/pandas-pivot-table-explained.html


यदि [0, 1, 2]सूचकांक है, तो collections.Counterउपयोगी है:

[] में:
data2 = pd.DataFrame.from_dict (
    {[श्रेणियां ': {०: [' ए ’,] बी’], १: ['बी ’,' सी’, 2 डी ’], २: ['बी’,' डी ’]}})
data3 = data2 ['श्रेणियां']। लागू करें (संग्रह। मुठभेड़)
pd.DataFrame.from_records (data3) .fillna (मूल्य = 0)
बाहर[]:
       ऐ बी सी डी
0 1 1 0 0
१ ० १ १ १ १
२ ० १ ० १ १

धन्यवाद, मैं इसकी जाँच करूँगा। दरअसल, 0, 1 और 2 इंडेक्स हैं। इसके अलावा, क्या आपके पास कोई विचार है कि यहाँ पर कैसे कुशलता से कुशलता से संभाला जा सकता है क्योंकि बहुत सारे शून्य हैं?
डेनिस एल

स्मृति को बचाने के लिए पांडा और स्केपी दोनों में विरल डेटा संरचनाएं ( पांडा स्पार्से , स्कैपी स्पार्स ) होती हैं , लेकिन वे आपके द्वारा उपयोग की जाने वाली मशीन लर्निंग लाइब्रेरी द्वारा समर्थित नहीं हो सकती हैं। यदि आपकी समस्या की आयाम (स्तंभों की संख्या) इतनी बड़ी है कि विरल प्रतिनिधित्व आवश्यक है, तो आप आयामी कमी तकनीकों का उपयोग करके भी विचार करना चाह सकते हैं ।
शमूएल हैरोल्ड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.