2017-04-21 28 views
0

我想知道,我该怎么做How to a run function per group that return vector, not single value?熊猫。如何为每个组返回向量的运行函数,而不是单个值与熊猫?

我有一个数据集在值列和组列。

x group order 
1 22  a  1 
2 33  a  2 
3 11  a  3 
4 4  b  1 
5 88  b  2 
6 77  b  3 
7 43  b  4 
8 9  b  5 

我想分析每个组的值列。例如,我想用一个fft。我如何在每个返回一个序列的组上运行函数,而不仅仅是每个组的值(对于每个组,fft产生一个向量),并按照每行返回。

我希望像

y group order 
1 21  a  1 
2 62  a  2 
3 83  a  3 
4 4  a  4 
6 46  b  1 
7 17  b  2 

作为输出。

我想在熊猫里做这件事。如果加分能与https://github.com/kieferk/dfply

回答

1

使用apply来完成,并在pd.Series

df.groupby('group').x.apply(lambda x: pd.Series(np.random.choice(x, 2))) 

group 
a  0 22 
     1 33 
b  0 88 
     1 43 
Name: x, dtype: int64 
包住结果
相关问题