自定义描述或聚合没有groupby

时间:2016-07-04 07:37:40

标签: python pandas

我想使用groupby.agg我的组是整个数据帧。换句话说,我想使用agg功能,没有groupby。我已经找到了一个例子,但找不到它。

这就是我所做的:

import pandas as pd
import numpy as np

np.random.seed([3,1415])

df = pd.DataFrame(np.random.rand(6, 4), columns=list('ABCD'))
df

df

def describe(df):
    funcs = dict(Kurt=lambda x: x.kurt(),
                 Skew='skew',
                 Mean='mean',
                 Std='std')
    one_group = [True for _ in df.index]
    funcs_for_all = {k: funcs for k in df.columns}
    return df.groupby(one_group).agg(funcs_for_all).iloc[0].unstack().T

describe(df)

enter image description here

问题

我该怎么做呢?

1 个答案:

答案 0 :(得分:6)

我认为通过利用DataFrame.groupby()接受lambda函数来提高可读性,对您自己的提案进行小规模压缩:

def describe(df):
    funcs = dict(Kurt=lambda x: x.kurt(),
                 Skew='skew',
                 Mean='mean',
                 Std='std')
    funcs_for_all = {k: funcs for k in df.columns}
    return df.groupby(lambda _ : True).agg(funcs_for_all).iloc[0].unstack().T

describe(df)