如何返回向量的每个组的运行函数,而不是带有pandas的单个值?

时间:2017-04-21 17:10:54

标签: python pandas

我想知道,我如何在熊猫中做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 个答案:

答案 0 :(得分: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