Sal*_*ala 4 python quantile dataframe pandas pandas-groupby
我对 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
Run Code Online (Sandbox Code Playgroud)
艺术:
ID commNumber
10 3
11 2
12 1
13 4
Run Code Online (Sandbox Code Playgroud)
我需要comms按 ID 进行分组,然后保存(显然在正确的 ID 行中)每个 ID 的 commScore 分布的arts四分位数范围 ( IQR )。
我已经尝试过使用groupby,agg和map ,但由于我的概念pandas非常有限,所以我无法做我正在寻找的事情。
有没有人有办法解决吗?
谢谢
安德里亚
Shu*_*rma 10
我们可以使用from函数group对数据框进行ID聚合列来计算四分位数范围,然后将计算出的范围放在数据框的列上commScoreiqrscipy.statsmapiqrIDarts
from scipy.stats import iqr
arts['IQR'] = arts['ID'].map(comms.groupby('ID')['commScore'].agg(iqr))
Run Code Online (Sandbox Code Playgroud)
ID commNumber IQR
0 10 3 3
1 11 2 1
2 12 1 0
3 13 4 3
Run Code Online (Sandbox Code Playgroud)