假设我有一个如下所示的交易熊猫数据框:
+----------+----------+----------+---------+
| 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个交易中,依此类推。
有什么技巧可以做到这一点吗?提前致谢
您可以使用unstack()进行以下操作:
Name
和计数unique original-index
这是level_1
后unstack()
和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] 删除。
我来说两句