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

Posted

技术标签:

【中文标题】创建单独的列,其标题基于列中的值【英文标题】: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 中出现的总次数 【参考方案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 中找到的每个唯一值的出现次数 非常感谢!这帮了大忙。

以上是关于创建单独的列,其标题基于列中的值的主要内容,如果未能解决你的问题,请参考以下文章

我想在列中的值中添加“%”单位

如何创建临时表或仅从循环中的列中选择不同的值

将 Spark Dataframe 中的多个列发送到外部 API 并将结果存储在单独的列中

从数据库列和 C# 中的 textBox 值中扣除值,扣除后的值必须存储在新列中

对于要求,我需要通过从该数据帧的列中的列表中的值创建行来将数据帧转换为 [重复]

如何使用熊猫对与给定条件匹配的列中的值求和?