2016-03-21 18 views
0

Verilerimden matris elde etmek için pandaları veya python kodunu nasıl yazabilirim? Aşağıdaki tablo vardır:Pandalar veya python kullanarak verilerden matris alma

Item Route Order 
R124 A1 1 
R124 A2 2 
R124 A3 3 
R124 A4 4 
R124 A4 4 
R126 A5 1 
R126 A6 2 
R126 A7 3 
R126 A7 3 

My gerekli çıktısı:

A1 A2 A3 A4 A5 A6 A7 
R124 1 1 1 2 0 0 0 
R126 0 0 0 0 1 1 2 

matrisi elde etmek için, benzersiz bir 'Öğe' değeri bir satır adı olur. Örneğin R124, 'Rota' sütununda A1, A2 ve A3'e 'Sıra' sütun eşlemesinde 1 girişe ve 'Rota' sütununda A4'e eşlenen 2 girişe sahiptir. Eşlenen girişlerin sayısı buna göre kaydedilir. R124'ün A5, A6 ve A7 için 'Route' sütununa 'Order' giriş eşlemesi bulunmadığından, çıkış matrisinde gösterildiği gibi sıfırlar kaydedilir.

cevap

1

Sadece pivot_table'a ihtiyacınız var.

veri çerçevesi df ise:

df.pivot_table(index="Item",columns="Route",values="Order",aggfunc='count') 

verir:

Route A1 A2 A3 A4 A5 A6 A7 
Item          
R124 1.0 1.0 1.0 2.0 NaN NaN NaN 
R126 NaN NaN NaN NaN 1.0 1.0 2.0 

ve tamamen istenilen cevabı taklit etmek sadece fillna ve astype ekleyin:

df.pivot_table(index="Item",columns="Route",values="Order",aggfunc='count').fillna(0).astype(int) 

verir

Route A1 A2 A3 A4 A5 A6 A7 
Item        
R124 1 1 1 2 0 0 0 
R126 0 0 0 0 1 1 2 
+0

Mükemmel !. Tam olarak ne istediğimi. Teşekkürler @tvashtar – user27976

İlgili konular