熊猫数据框按特定值分组

安德鲁·路易斯

假设我有一个如下所示的交易熊猫数据框:

+----------+----------+----------+---------+
|  Owner   |  Seller  | Mediator |  Buyer  |
+----------+----------+----------+---------+
| 'andrew' | 'bob'    | 'tom'    | 'john'  |
| 'andrew' | 'andrew' | 'bill'   | 'jason' |
| 'andrew' | 'bill'   |  'bill'  | 'tom'   |
+----------+----------+----------+---------+

我想进行一个怪异的分组-我想根据交易中的参与情况按人的名字分组。因此输出为:

+----------+-------+
|   Name   | Count |
+----------+-------+
| 'andrew' |     3 |
| 'bob'    |     1 |
| 'tom'    |     2 |
| 'john'   |     1 |
| 'bill'   |     2 |
| 'jason'  |     1 |
+----------+-------+

即,“安德鲁”的计数为3,因为他的名字出现在3个交易中;“约翰”的计数为1,因为他只出现在1个交易中,依此类推。

有什么技巧可以做到这一点吗?提前致谢

x

您可以使用unstack()进行以下操作:

  1. 将所有名称放在一栏中
  2. GROUPBY Name和计数unique original-index这是level_1unstack()reset_index()
    (df.unstack()
       .reset_index(name='Name')
       .groupby('Name') 
       .level_1 
       .nunique() 
       .rename('Count') 
       .reset_index())

    #Out[xx]:
    #     Name  Count
    #0  andrew      3
    #1    bill      2
    #2     bob      1
    #3   jason      1
    #4    john      1
    #5     tom      2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章