需要帮助的是特定的交叉表! Python熊猫

时间:2017-08-14 17:01:43

标签: python pandas pandas-groupby

这个链接非常接近我想到的查询。 Python pandas groupby aggregate on multiple columns

涉及该问题的主要议题是: 1. Python | 2.熊猫DS | 3.分组依据4.聚合函数| 5.Efficiency

我拥有的当前熊猫DS是 列名称 - > Unique_Identifier |分类|产品|值

因此数据具有每个产品重复的标识符。我需要的信息是每个标识符得到1行,列是count(记录)以及每个Identifier - Classification组合的sum(Values)。

我确实尝试过groupby([' Unique_Identifier',' Classficiation'])但是无法找出新的列生成部分的大小和总和。

由于数据疯狂大,我正在寻找高效率。我是熊猫的新手,因此很想从大师那里得到一些帮助。 谢谢, 中号

示例数据如下所示:

Index   Identifier  Classification  Product Value
  1          123          X          abc    10
  2          123          X          bcd    20
  3          123          Y          cde    30
  4          123          Y          def    40
  5          123          Z          efg    50
  6          234          Z          ghi    60
  7          234          Z          abc    70
  8          234          X          bcd    80
  9          345          X          cde    90
  10         345          Y          def    10

预期输出 - 类似这样的

                 Sum          Size
  Identifier  X   Y   Z    X   Y   Z
     123     30  70   50   2   2   1
     234     80  NAN 130   1  NAN  2
     345     90  10  NAN   1   1  NAN

1 个答案:

答案 0 :(得分:-1)

我想出了一些步骤来根据需要获取视图。大师可以交叉检查并验证相同的内容。 第1步:使用groupby设置组(['标识符','分类'])

step2:使用'值'汇总和计数的函数。 温度['值&#39]。AGG(['和''大小'])。reset_index()

/ * reset index用于查看更好的有序记录,而不是引用旧索引* /

step3(可选):如果你有另一列(比如说值2)那么你需要用该列重复步骤2并合并标识符和分类上的2个数据集

第4步:使用pivot(index =' Identifier',columns =' Classification')

步骤5:以所需格式保存数据集。我用过CSV。

输出看起来像这样 -

                 Sum          Size
  Identifier  X   Y   Z    X   Y   Z
     123     30  70   50   2   2   1
     234     80  NAN 130   1  NAN  2
     345     90  10  NAN   1   1  NAN