我是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()
写一个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)