python - 熊猫:groupby然后检索IQR
问题描述
我对 Pandas 很陌生,我正在尝试做以下事情:
我有两个数据框comms
,arts
看起来像这样(除了它们与其他列的广告更长)
通讯:
ID commScore
10 5
10 3
10 -1
11 0
11 2
12 9
13 -2
13 -1
13 1
13 4
艺术:
ID commNumber
10 3
11 2
12 1
13 4
我需要comms
按他们的 ID 进行分组,然后将每个 ID 的 commScore 分布的四分位间距 ( IQRarts
) 保存在(显然是在正确的 ID 行中) 。
我已经尝试过使用groupby
,agg
和map
,但是由于我对 pandas 的概念非常有限,所以我无法做到我想要的。
有没有人有办法解决吗?
谢谢
安德烈亚
解决方案
我们可以使用函数from来计算group
数据框ID
并聚合列来计算四分位数间距,然后将这个计算的范围放在数据框的列上commScore
iqr
scipy.stats
map
iqr
ID
arts
from scipy.stats import iqr
arts['IQR'] = arts['ID'].map(comms.groupby('ID')['commScore'].agg(iqr))
ID commNumber IQR
0 10 3 3
1 11 2 1
2 12 1 0
3 13 4 3
推荐阅读
- azure - Azure AD B2C 邀请作为来宾进行管理
- c - 当 nfds 大于 fd_set 中位数组的长度时,select 会做什么?可能吗?
- actions-on-google - 如何使用 Google Home 控制扬声器音量?
- c - 内核线程执行更多通信工作时出现不希望的延迟
- phpexcelreader - 像 α β γ δ 这样的数学符号没有使用 php excel_reader2 上传到数据库中
- c# - .NET Core Roslyn 在程序集中找不到 System.Decimal
- python - 删除重复后如何维护字符串列表的索引?
- javascript - 如何将 QR 码转换为 img 并将其保存到 firebase 存储
- html - 仅在 chrome 浏览器中与主导航栏重叠的横幅视频
- node.js - 猫鼬聚合未返回预期结果