2012-04-18 42 views
5

Mam dane zagregowane przy użyciu ramki danych pandy. Poniżej przedstawiamy niektóre rzeczywiste dane i sposób ich agregacji.zagregowane dane pandy do tablicy numpy: konwersja struktury danych

fdf.groupby(['row',col'])['percent'].sum()

http://pastebin.com/R8XWpgtU

Co chciałbym zrobić, to utworzyć tablicę 2d numpy tego (wiersze = rzędzie, kolumnie = col). Jakikolwiek zręczny sposób to zrobić?

Innym sposobem zrobiłem coś podobnego było utworzyć tabelę przestawną

pivot_table(fdf,values='percent',rows='row',cols='col', aggfunc=np.sum)

W tym przypadku chcę przekonwertować ten stół obrotowy do 2d numpy tablicy. Czy istnieje sposób, aby zaindeksować w każdej komórce tej tabeli. Jeśli tak, to prawdopodobnie będę w porządku przy samym stole.

Odpowiedz

6

Spróbuj:

result = fdf.groupby(['row',col'])['percent'].sum() 
result.unstack('col').values 

Alternatywnie:

fdf.pivot_table('percent', rows='row', cols='col', aggfunc='sum').values 
Powiązane problemy