熊猫groupby和qcut

玛哈比格

有没有一种方法可以构造Pandas groupby和qcut命令以返回具有嵌套图块的一列?具体来说,假设我有2组数据,并且我想将qcut应用于每组,然后将输出返回到一列。这将类似于MS SQL Server的ntile()命令,该命令允许Partition by()。

     A    B  C
0  foo  0.1  1
1  foo  0.5  2
2  foo  1.0  3
3  bar  0.1  1
4  bar  0.5  2
5  bar  1.0  3

在上面的数据框中,我想在对A进行分区以返回C时将qcut函数应用于B。

算了吧
import pandas as pd
df = pd.DataFrame({'A':'foo foo foo bar bar bar'.split(),
                   'B':[0.1, 0.5, 1.0]*2})

df['C'] = df.groupby(['A'])['B'].transform(
                     lambda x: pd.qcut(x, 3, labels=range(1,4)))
print(df)

产量

     A    B  C
0  foo  0.1  1
1  foo  0.5  2
2  foo  1.0  3
3  bar  0.1  1
4  bar  0.5  2
5  bar  1.0  3

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章