我想用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)
问题
我该怎么做?
最佳答案
通过利用 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)
关于python - 没有 groupby 的自定义描述或聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38179212/