2016-09-28 1 views
1

У меня есть dataframe, который выглядит какКак отделить Numpy массив на отдельные столбцы в панд

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 

Я хочу GroupBy и сделать нормированную гистограмму столбца ID_2 для каждой группы. Так что я

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') 

Однако то, что я действительно хотел бы для 11 элементов Numpy массивов, чтобы быть в отдельных столбцах dataframe.

Как это сделать?

ответ

3

Вы можете построить объект серии из каждого Numpy массива, а элементы будут транслироваться в виде столбцов:

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

Это умный. Спасибо! – eleanora

Смежные вопросы