创建单独的列,其标题基于列中的值
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 值中扣除值,扣除后的值必须存储在新列中