แยกออกเป็น dataframe คอลัมน์มี pandas ชุดเข้าไปในหลายๆสดมภ์

0

คำถาม

ฉันมี pandas dataframe กับหลายๆคอลัมน์ หนึ่งในพวกเขาคือชุด ฉันต้องการที่จะแยกออกนั่นคอลัมน์ในการตั้งค่าตรรกะคอลัมน์. ดังนั้นถ้าคุณค่าในแถวเป็น['แดง','Hot','หน้าร้อน']ฉันต้องการ 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 (ที่แท้จริง/เท็จจะเป็นคนที่และ zeros เหมือนกัน เหมือนสิ่งที่ดีกว่า.

ข้อควรจำ:ฉันมองมาที่นี่ตั้งด้านล่างนี้: แยกออกเป็น Pandas คอลัมน์ของรายชื่อเข้าไปในหลายๆสดมภ์ แต่นั่นเดียวโดยตรงได้ผลถ้าคุณอนุมันไม่อยู่แล้วส่วนหนึ่งของ DF.

ที่เขาแนะนำให้ผูกผ้ากันเปื้อนเกียรติอย่างยิ่!

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

ยังไงมันได้ผล

สิ่งที่คุณกำลังมองหาคือปกติโทรหา หนึ่งร้อนการเข้ารหัสภาษา,และมันมีวิธีการอยู่ใน pandas อย่างนั้นหรอ: get_dummies(). มันต้องใช้ชุด(หรือ DataFrame)และสร้างคอลัมน์แสดงผล view->สำหรับแต่ละยูนิคองค่าอยู่ในนั้นชุด(หรือ DataFrame).

df['Sentiment'].explode() สร้างใหม่คอลัมน์ที่บรรจุทั้งหมดแต่ละค่าของทั้งหมดรายชื่ออยู่ในที่เลือกคอลัมน์(s).

2021-11-24 03:25:47

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่