在 python 中计算 std()
calculate std() in python
我有一个数据框如下
Res_id Mean_per_year
a 10.4
a 12.4
b 4.4
b 4.5
c 17
d 9
我想在“mean_per_year”上使用熊猫计算 std() 相同 res_id
我做了一个汇总并得到了
Res_id Mean_per_year_agg
a 10.4,12.4
b 4.4,4.5
c 17
d 9
但是当我在 mean_per_year_agg 上应用 std() 时它不起作用
我的代码:
data = (data.groupby(['res_id'])
.agg({'mean_per_year': lambda x: x.tolist()})
.rename({'res_id' : 'mean_per_year'},axis=1)
.reset_index())
data['std'] = data.groupby('res_id')['mean_per_year_agg'].std()
错误
/usr/local/lib/python3.6/dist-packages/pandas/core/internals/blocks.py in __init__(self, values, placement, ndim)
129 if self._validate_ndim and self.ndim and len(self.mgr_locs) != len(self.values):
130 raise ValueError(
--> 131 f"Wrong number of items passed {len(self.values)}, "
132 f"placement implies {len(self.mgr_locs)}"
133 )
ValueError: Wrong number of items passed 0, placement implies 1
感谢您的帮助
您只需要 data.groupby('res_id')["Mean_per_year"].std()
原始数据框(删除整个 aggregate
业务)。
我有一个数据框如下
Res_id Mean_per_year
a 10.4
a 12.4
b 4.4
b 4.5
c 17
d 9
我想在“mean_per_year”上使用熊猫计算 std() 相同 res_id 我做了一个汇总并得到了
Res_id Mean_per_year_agg
a 10.4,12.4
b 4.4,4.5
c 17
d 9
但是当我在 mean_per_year_agg 上应用 std() 时它不起作用 我的代码:
data = (data.groupby(['res_id'])
.agg({'mean_per_year': lambda x: x.tolist()})
.rename({'res_id' : 'mean_per_year'},axis=1)
.reset_index())
data['std'] = data.groupby('res_id')['mean_per_year_agg'].std()
错误
/usr/local/lib/python3.6/dist-packages/pandas/core/internals/blocks.py in __init__(self, values, placement, ndim)
129 if self._validate_ndim and self.ndim and len(self.mgr_locs) != len(self.values):
130 raise ValueError(
--> 131 f"Wrong number of items passed {len(self.values)}, "
132 f"placement implies {len(self.mgr_locs)}"
133 )
ValueError: Wrong number of items passed 0, placement implies 1
感谢您的帮助
您只需要 data.groupby('res_id')["Mean_per_year"].std()
原始数据框(删除整个 aggregate
业务)。