2016-09-28 1 views
1

Ich habe einen Datenrahmen, die Wie ein numpy Array in separaten Spalten in Pandas trennen

ID_0 ID_1 ID_2 
0 a b 0.05 
1 a b 0.10 
2 a b 0.19 
3 a c 0.25 
4 a c 0.40 
5 a c 0.65 
6 a c 0.71 
7 d c 0.95 
8 d c 1.00 

Ich möchte GROUPBY und machen ein normalisiertes Histogramm der ID_2 Spalte für jede Gruppe wie

aussieht. So mache ich

df.groupby(['ID_0', 'ID_1']).apply(lambda x: np.histogram(x['ID_2'], range = (0,1), density=True)[0]).reset_index(name='ID_2') 

Doch was würde Ich mag ist für die 11 Elemente der numpy Arrays in separaten Spalten des Datenrahmen zu sein.

Wie kann ich das tun?

Antwort

3

Sie können eine Serie Objekt aus jedem numpy Array konstruieren und die Elemente werden als Spalten übertragen werden:

import pandas as pd 
import numpy as np 
df.groupby(['ID_0', 'ID_1']).apply(lambda x: pd.Series(np.histogram(x['ID_2'], range = (0,1), density=True)[0])).reset_index() 

enter image description here

+0

Das klug ist. Vielen Dank! – eleanora

Verwandte Themen