创建单独的列,其标题基于列中的值

时间:2018-07-18 16:01:48

标签: python pandas anaconda jupyter-notebook

我正在尝试为数据的每个位置创建值。我有:

Portafolio Zona Region COM PROV        Type of Housing
   654738   1    2      3   21             compuesto 
    65344   3    8      4   22              error 

我想为每种住房类型及其值创建新的列,我希望能够计算每个投资组合,区域,区域,com和省的总数。我已经为它苦苦挣扎了两天,我是python熊猫的新手。它应该看起来像这样:

 Zona Region COM PROV      Compuesto      Error
   1    2      3   21         24           444 
   3    8      4   22         34            32 

1 个答案:

答案 0 :(得分:1)

您要pd.pivot_table指定聚合函数为size

df1 = pd.pivot_table(df, index=['Zona', 'Region', 'COM', 'PROV'], 
                     columns='Type of Housing',
                     aggfunc='size').reset_index()
df1.columns.name=None

输出:df1

   Zona  Region  COM  PROV  compuesto  error
0     1       2    3    21        1.0    NaN
1     3       8    4    22        NaN    1.0