【问题标题】:create separate columns whose titles are based on values in a column创建单独的列,其标题基于列中的值
【发布时间】:2018-12-26 15:16:14
【问题描述】:

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

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

我想为每种类型的住房及其价值创建新列,我希望能够计算每个投资组合、区域、区域、com 和 prov 中的总数。我已经为此苦苦挣扎了 2 天,而且我是 python pandas 的新手。它应该是这样的:

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

【问题讨论】:

  • “Compuesto”和“Error”的值从何而来?它们不是来自您提供的输入数据。
  • 这些是它们在每个 zona、region、com 和 prov 中出现的总次数

标签: python pandas anaconda jupyter-notebook


【解决方案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

【讨论】:

  • 这会给我 PER zona、region、com 和 prov 的 'compuesto' 和 'error' 的总出现次数吗?
  • 是的,对于[Zona, Region, COM, PROV] 的每个唯一组合,这将计算在Type of Housing 中找到的每个唯一值的出现次数
  • 非常感谢!这帮了大忙。
猜你喜欢
  • 2020-07-13
  • 2023-03-27
  • 2021-03-27
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 2014-12-26
相关资源
最近更新 更多