熊猫 groupby 和 qcut

Posted

技术标签:

【中文标题】熊猫 groupby 和 qcut【英文标题】:Pandas groupby and qcut 【发布时间】:2013-10-24 13:13:06 【问题描述】:

有没有办法构建 Pandas 的 groupby 和 qcut 命令以返回包含嵌套图块的列?具体来说,假设我有 2 组数据,我希望将 qcut 应用于每组,然后将输出返回到一列。这类似于 MS SQL Server 的 ntile() 命令,它允许通过 () 进行分区。

     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

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

【问题讨论】:

【参考方案1】:
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

【讨论】:

以上是关于熊猫 groupby 和 qcut的主要内容,如果未能解决你的问题,请参考以下文章

熊猫 groupby 和总和组

熊猫:groupby 和转换与日期时间

熊猫可能使用 groupby 和 resample 的错误

熊猫 groupby 和 qcut

熊猫 groupby 和过滤器

熊猫:GroupBy Shift 和累积和