想象一下我有这个表:

Col-1 | Col-2
A     |   2
A     |   3
B     |   1
B     |   4
C     |   7

Col—1上的Groupby与Col—2上的总和聚合将把A相加为5,B相加为5,C相加为7.

我想知道的是,是否有一个baking in特性,允许聚合列中的目标值,然后将所有其他条目分组到另一个bin中. 例如,如果我想在Col—1上以A为目标,并将所有其他条目分组到一个名为other的标签中,我最终会以A为5,Other为12.

有道理吗? 我知道我可以做一些过滤魔法和合并数据集回到一起,但我认为必须有一个更干净,更Python的方式我错过了.

我试着看过文件,但没有任何东西能让我吃惊.

推荐答案

一种解决方案是从Column 1中得到pd.Categorical——字符串A的两个类别A,其他字符串Other的两个类别.>然后按此分类分组:

tmp = pd.Categorical(df["Col1"], categories=["A", "Other"]).fillna("Other")

out = df.groupby(tmp, observed=False)["Col2"].sum()
print(out)

打印:

A         5
Other    12
Name: Col2, dtype: int64

另一个解决方案,按布尔掩码分组:

out = (
    df.groupby(df["Col1"].eq("A"))["Col2"]
    .sum()
    .rename(index={True: "A", False: "Other"})
)
print(out)

打印:

Col1
Other    12
A         5
Name: Col2, dtype: int64

Python相关问答推荐

使用numpy提取数据块

如何使用Python将工作表从一个Excel工作簿复制粘贴到另一个工作簿?

Pandas 有条件轮班操作

非常奇怪:tzLocal.get_Localzone()基于python3别名的不同输出?

在线条上绘制表面

我们可以为Flask模型中的id字段主键设置默认uuid吗

如何使用Python以编程方式判断和检索Angular网站的动态内容?

Pandas—在数据透视表中占总数的百分比

如何使用Pandas DataFrame按日期和项目汇总计数作为列标题

如何在FastAPI中为我上传的json文件提供索引ID?

解决调用嵌入式函数的XSLT中表达式的语法移位/归约冲突

pysnmp—lextudio使用next()和getCmd()生成器导致TypeError:tuple对象不是迭代器''

从旋转的DF查询非NaN值

用两个字符串构建回文

使用嵌套对象字段的Qdrant过滤

如何获得3D点的平移和旋转,给定的点已经旋转?

你能把函数的返回类型用作其他地方的类型吗?'

504未连接IB API TWS错误—即使API连接显示已接受''

为罕见情况下的回退None值键入

查找数据帧的给定列中是否存在特定值