当前位置: 首页 > 知识库问答 >
问题:

Pandas DataFrame:对两列上的多个组进行分组和计数[重复]

阙项禹
2023-03-14

我有一个熊猫的数据帧是这样的:

In[1]: df
Out [1]:
    City         Cluster
0    Paris             A
1    Paris             A
2    Paris             B
3    Paris             B
4    Paris             B
5    Nairobi           C
6    Nairobi           A
7    Nairobi           C
8    Phnom_penh        B
9    Phnom_penh        B
10   Phnom_penh        B

我想为每个集群/城市计算一个城市/集群出现的次数,如下所示:

In[2]: df_count
Out[2]:
    Paris    Nairobi    Phnom_penh
A       2          1             0
B       3          0             3
C       0          2             0

我尝试使用groupby函数和count,size...但是没有成功。

我认为groupby函数不是办法,但办法是什么呢?有成对计数功能吗?交叉标签功能?

共有1个答案

景轶
2023-03-14

我找到了函数pandas.crosstab来完成这项工作。

pandas.crosstab(df['City'], df['Cluster']).T
 类似资料:
  • 我想按多个列对熊猫数据框进行分组。每个Row都有一个整数、一个Name和一个额外的数值。我希望最终的Dataframe包含Name具有最高整数的每一行。 通过分组数据帧,只有第0行应该消失。第3行和第4行仍应包括在数据框中。

  • 我有一个来自以下用户的消息列表: 我想从这个消息对象列表中计数并显示。有代码帮助吗?

  • 问题内容: 带有以下数据 我想产生以下输出: 如果我按价格分组并显示最大日期和最小日期,那么我将得到以下不是我想要的内容(请参见重叠的日期)。 因此,基本上我想做的是根据组列产品和价格对数据进行逐步更改。 什么是最干净的方法来做到这一点? 问题答案: 有一种(或多或少)解决此类问题的已知技术,涉及两个调用,如下所示: 输出:

  • 我有一个过程对象列表,如下所示 我的程序课就像 我想基于以下条件对对象进行排序和分组。 应根据过程名称对所有过程进行分组。 过程必须按过程日期降序排列。[日期列表中的第一个元素,即 分组在一起的相同过程应按日期降序排列。 最终结果必须是, 我能够使用比较器和旧的Java代码实现这一点。是否可以使用java8流、收集器和分组来实现相同的功能?

  • 我已经使用COUNTIF和VLOOKUP在多个列中创建了一个密集的公式,目前我已经对其进行了设置,以便我必须复制/粘贴每个公式。但我真的很想能够使用arrayformula为下面的每一列编写一次公式,并让它在至少1000行中呈现。写这个有窍门吗? 第一栏 第二栏 我还在这里看到了StackOverflow的帖子(在Google表格上使用ArrayPrograma逐行迭代COUNTIF),并试图模拟

  • 问题内容: 通过多个属性对数组中的元素进行分组最符合我的问题,因为它确实通过数组中的多个键对对象进行了分组。问题是此解决方案无法汇总属性值,然后删除重复项,而是将所有重复项嵌套在二维数组中。 预期行为 我有一个对象数组,必须按和进行分组。 这个数组中的对象被视为重复仅当其和是相同的。如果它们是,我想分别总结它们的和值,然后删除重复项。 因此,在这个例子的结果阵列可以仅含有四种组合:,,, 问题 我