Groupby,手段和标准

问题描述 投票:0回答:1

我是python的新手...提前谢谢你!

我需要分组,在一列中计算每种营养素的平均值和相应的标准品。如此:鳕鱼| Nmean | Nstd |等...每种营养素

我设法分组并计算平均值。但我需要另一个专栏,例如,在N%旁边,它的标准......等等...

report = my_data.groupby(["cod"], as_index = False)[['N%', 'P%','K%', 'Ca%', 'Mg%', 'S%',
                                                'Fe mg/kg', 'Mn mg/kg', 'Zn mg/kg', 'Cu mg/kg', 
                                                'B mg/kg', 'Na mg/kg']].mean()
python-3.x pandas jupyter-notebook
1个回答
0
投票

写一个dict理解,每列作为键,['mean', 'std']作为值第一 -

groups_agg = { i:['mean', 'std'] for i in ['N%', 'P%','K%', 'Ca%', 'Mg%', 'S%', 'Fe mg/kg', 'Mn mg/kg', 'Zn mg/kg', 'Cu mg/kg', 'B mg/kg', 'Na mg/kg'] }

看起来像这样 -

{'B mg/kg': ['mean', 'std'],
 'Ca%': ['mean', 'std'],
 'Cu mg/kg': ['mean', 'std'],
 'Fe mg/kg': ['mean', 'std'],
 'K%': ['mean', 'std'],
 'Mg%': ['mean', 'std'],
 'Mn mg/kg': ['mean', 'std'],
 'N%': ['mean', 'std'],
 'Na mg/kg': ['mean', 'std'],
 'P%': ['mean', 'std'],
 'S%': ['mean', 'std'],
 'Zn mg/kg': ['mean', 'std']}

然后将对象传递给pd.agg()

my_data.groupby(["cod"], as_index = False).agg(groups_agg)
© www.soinside.com 2019 - 2024. All rights reserved.