【发布时间】:2019-09-03 20:48:24
【问题描述】:
我有一个包含 4 列 textID、A、B、C 的数据框
我想创建一个 groupby 对象,然后计算 C 列的第 5 个百分位数,然后将此列(称为“分位数”)添加回原始数据框。
当 groupby 在一列上时,我有以下代码可以工作
df2['quantile']=df2.C.groupby(df2.itextID).transform(lambda x:
x.quantile(q=0.5))
问题 1: 如何扩展它以便 groupby 对象现在使用两列,即 textID 和 A?
问题 2: 可以先创建 groupby 对象,然后再应用变换吗? 即
### Create groupby object Extract top 4 rows in each group
grp = df2.groupby('textID').head(4)
??? how to apply the transform to column C?
谢谢
(可以使用方括号表示法而不是点吗?)
【问题讨论】: