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

在pandas中使用值的出现计数创建透视表[重复]

景嘉实
2023-03-14

我试图在Pandas中创建跨表/透视表:

import pandas as pd
import numpy as np

df = pd.DataFrame({'foo': ['one', 'one', 'one', 'two', 'two','two'],'bar': ['A', 'A', 'C', 'B', 'B', 'C']})
pd.pivot(df, index='foo', columns='bar')
pd.pivot_table(data = df, values = 'bar', index = 'bar', columns = 'foo', aggfunc=lambda x: np.count_nonzero(x))

foo one two
bar     
A   4.0 NaN
B   NaN 4.0
C   2.0 2.0
        A   B   C
one     2       1
two        2    1

共有1个答案

苏波涛
2023-03-14

切换索引,并将len用作aggfunc:

df.pivot_table(index='foo', columns='bar', values='foo', aggfunc=len, fill_value=0)

#bar  A  B  C
#foo         
#one  2  0  1
#two  0  2  1

或者只使用pd.crosstab:

pd.crosstab(df.foo, df.bar)

#bar  A  B  C
#foo         
#one  2  0  1
#two  0  2  1
 类似资料:
  • 如何使用Java在透视表中设置标题。我必须使用apache POI在excel表中创建数据透视表。现在使用Java更改行和列标题标签。

  • 我有一个这样的数据帧: 我想知道我们如何使用GROUPBY实现相同的结果? 感谢帮助。 类似的问题: Pandas列值到列?

  • 问题内容: 我需要从大约6000万行的数据集中创建一个2000列,大约30-50百万行的数据透视表。我曾尝试过旋转100,000行的数据块,但这种方法行得通,但是当我尝试通过先执行.append()然后再执行.groupby(’someKey’)。sum()来重组DataFrame时,我的所有内存都被占用了和python最终崩溃。 如何在有限的RAM量下处理如此大的数据? 编辑:添加示例代码 下面

  • 我是vba新手,正在尝试使用vba和Excel创建。 我想创建像下面的图像作为输入表。 我试图添加、、、的行标签,值为、和。不为SHEET1生成任何透视表。

  • 问题内容: 我想从Table1转换数据,如您在数据透视表中的第一张图片上所见。在MySQL中可以做到吗?因为数据透视表(A,B,C,D)的值是varchar数据格式,所以我不能使用MySQL的任何聚合函数(例如SUM或其他函数)。 谢谢你的帮助 问题答案: 静态查询(就Bob和Sue而言)可能看起来像这样 现在可以使用动态SQL来解释其他名称 输出: 这是 SQLFiddle 演示 您可以将其包装

  • 问题内容: 我正在尝试在postgresql中创建数据透视表类型视图,并且快要完成了!这是基本查询: 和数据: 我想要得到的是以下内容: 我正在尝试使用CASE WHEN进行此操作,因此我得到了以下信息: 这给了我输出: 现在我知道我必须在某个时候按acc分组,所以我尝试 但我感到恐惧 我能够找到的所有先前示例在CASE语句周围都使用了SUM()之类的东西,所以我想那是聚合函数。我尝试使用FIRS