我想使用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
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)
我该怎么做呢?
答案 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)