【问题标题】:simple pivot table of pandas dataframe熊猫数据框的简单数据透视表
【发布时间】:2015-01-02 06:42:59
【问题描述】:

我正在尝试做一个看似非常简单的任务。 给定一个数据框:

daf = pd.DataFrame({'co':['g','r','b','r','g','r','b','g'],'sh ':['c','s','r','r','r','s','c','r']})

    co  sh
0   g   c 
1   r   s 
2   b   r 
3   r   r 
4   g   r 
5   r   s
6   b   c
7   g   r 

我想计算具有 'co' 和 'sh' 值的唯一组合的记录数,并输出为包含行 ['g','r','b'] 和列 [' c','s','r']

    c   s   r
g   1   0   2
r   0   1   1
b   1   0   1

可以使用pivot_table来完成吗?

谢谢,

【问题讨论】:

    标签: python pandas dataframe pivot-table


    【解决方案1】:

    使用pandas.crosstab可以更简单地完成:

    >>> pandas.crosstab(d.co, d.sh)
    sh  c  r  s
    co         
    b   1  1  0
    g   1  2  0
    r   0  1  2
    

    您可以使用pivot_table 来完成此操作,但它会给您 NaN 而不是 0 来表示缺少的连击。您需要指定len 作为聚合函数:

    >>> d.pivot_table(index='co', columns='sh', aggfunc=len)
    sh   c  r   s
    co           
    b    1  1 NaN
    g    1  2 NaN
    r  NaN  1   2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-28
      • 2023-01-11
      • 2016-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多