【发布时间】:2017-06-19 00:49:53
【问题描述】:
我需要沿列 (axis=0) 计算标准偏差,但由于两列的范围不同 (q1_5 = [0 - 15], q6_9 = [0-4]),我必须按最大值进行归一化。值(第 15 列 q1_5 和 4 列 q6_9)
q1_5 q6_9 participant_id
0 2.0 0.0 11
1 3.0 0.0 11
2 3.0 0.0 11
3 3.0 0.0 11
4 3.0 0.0 11
183 2.0 0.0 14
184 3.0 0.0 14
185 2.0 0.0 14
186 3.0 0.0 14
187 3.0 0.0 14
358 5.0 0.0 17
359 5.0 0.0 17
360 3.0 0.0 17
361 4.0 0.0 17
362 4.0 0.0 17
535 4.0 0.0 18
536 5.0 0.0 18
537 4.0 0.0 18
538 3.0 0.0 18
539 3.0 0.0 18
我想用 GroupBy 来做(因为我正在学习 pandas 并想习惯它的内在功能)。
我试图做类似的事情:
df.groupby('participant_id').agg([lambda x: (x.q1_5/15.0).std(), lambda x: (x.q6_9/4.0).std()])
但是没有用。
AttributeError: 'Series' object has no attribute 'q1_5'
问题
- 要比较两个不同范围的数组的 std(),我应该先标准化吗?
- 我的解决方案有什么问题?
【问题讨论】:
标签: python pandas pandas-groupby