विभाजन एक dataframe स्तंभ एक पांडा श्रृंखला में एकाधिक स्तंभों

0

सवाल

मैं एक पांडा dataframe कई कॉलम के साथ. उनमें से एक की एक श्रृंखला है. मैं विभाजित करना चाहते हैं कि स्तंभ का एक सेट में बूलियन स्तंभ हैं । इसलिए, यदि मान में एक पंक्ति है ['लाल','गरम','समर'], मैं चाहता हूँ 3 कॉलम: लाल (होने के मूल्य 1), गर्म (होने के मूल्य 1) और गर्मियों में (होने के मूल्य 1).

उदाहरण:

df = pd.DataFrame({'Owner': ['Bob', 'Jane', 'Amy'],
               'Make': ['Ford', 'Ford', 'Jeep'],
               'Model': ['Bronco', 'Bronco', 'Wrangler'],
               'Sentiment': [['Meh','Red','Dirty'], ['Rusty','Sturdy'], ['Dirty','Red']],
               'Max Speed': [80, 150, 69],
              'Customer Rating': [90, 50, 91]})

हमें देता है:

enter image description here

अब मैं चाहता हूँ कि इस उत्पादन: enter image description here (सही/गलत हो सकता है, लोगों और शून्य भी । बस के रूप में अच्छा है).

नोट: मैं इस पोस्ट में देखा नीचे: विभाजन एक पांडा के स्तंभ सूची में कई कॉलम लेकिन है कि केवल सीधे काम करता है अगर अपनी श्रृंखला पहले से ही नहीं है के एक भाग के डीएफ.

किसी भी मदद की सराहना!!!

dataframe pandas python
2021-11-24 02:59:52
2

सबसे अच्छा जवाब

2

की कोशिश करो explode तो crosstab और join

s = df.Sentiment.explode()
out = df.join(pd.crosstab(s.index,s).astype(bool))
out
  Owner  Make     Model          Sentiment  ...    Meh    Red  Rusty  Sturdy
0   Bob  Ford    Bronco  [Meh, Red, Dirty]  ...   True   True  False   False
1  Jane  Ford    Bronco    [Rusty, Sturdy]  ...  False  False   True    True
2   Amy  Jeep  Wrangler       [Dirty, Red]  ...  False   True  False   False
[3 rows x 11 columns]
2021-11-24 14:07:56
0

इस प्रयास करें:

df = pd.concat([df, pd.get_dummies(df['Sentiment'].explode())], axis=1)

आउटपुट:

>>> df
  Owner  Make     Model             Sentiment  Max Speed  Customer Rating  AWESOME  Dirty  LOVE  Meh  Red  Rusty  Sturdy
0   Bob  Ford    Bronco     [Meh, Red, Dirty]         80               90        0      0     0    1    0      0       0
0   Bob  Ford    Bronco     [Meh, Red, Dirty]         80               90        0      0     0    0    1      0       0
0   Bob  Ford    Bronco     [Meh, Red, Dirty]         80               90        0      1     0    0    0      0       0
1  Jane  Ford    Bronco       [Rusty, Sturdy]        150               50        0      0     0    0    0      1       0
1  Jane  Ford    Bronco       [Rusty, Sturdy]        150               50        0      0     0    0    0      0       1
2   Amy  Jeep  Wrangler  [LOVE, AWESOME, Red]         69               91        0      0     1    0    0      0       0
2   Amy  Jeep  Wrangler  [LOVE, AWESOME, Red]         69               91        1      0     0    0    0      0       0
2   Amy  Jeep  Wrangler  [LOVE, AWESOME, Red]         69               91        0      0     0    0    1      0       0

यह कैसे काम करता है

क्या आप के लिए देख रहे हैं आमतौर पर कहा जाता है एक गर्म एन्कोडिंग, और वहाँ है एक विधि में पंडों कि बस के लिए है: get_dummies(). यह एक श्रृंखला लेता है (या DataFrame) और बनाता है एक नया स्तंभ के लिए प्रत्येक में अद्वितीय मूल्य श्रृंखला है कि (या DataFrame).

df['Sentiment'].explode() बनाता है एक नया स्तंभ युक्त, सभी व्यक्तिगत मूल्यों के सभी सूचियों में चयनित स्तंभ(ओं).

2021-11-24 03:25:47

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में