Python:使用值作为索引重新透视或重新分组
我是熊猫队的新手,一直在尝试通过使用输出值来找出如何重新调整轴心或分组。例如,我使用下面的read_csv读取的示例csv数据Python:使用值作为索引重新透视或重新分组,python,pandas,Python,Pandas,我是熊猫队的新手,一直在尝试通过使用输出值来找出如何重新调整轴心或分组。例如,我使用下面的read_csv读取的示例csv数据 Transaction, Product, Dollar_Amount A, Orange, 1 A, Apple, 2 A, Pear, 3 B, Orange, 4 B, Grape, 5 C, Apple, 6 D, Orange, 1 D, Apple, 2 D, Pear, 3
Transaction, Product, Dollar_Amount
A, Orange, 1
A, Apple, 2
A, Pear, 3
B, Orange, 4
B, Grape, 5
C, Apple, 6
D, Orange, 1
D, Apple, 2
D, Pear, 3
我使用以下pivot或groupby方法计算每个事务中的产品数量
grp = df.groupby('Transaction').size().sort_values(ascending=False).reset_index()
pivo = pd.pivot_table(df, index=['Transaction'], values=['Dollar_Amount'], margins=True, aggfunc=[len]).reset_index()
从输出中,我希望透视或分组,这样我可以计算每个产品计数中的事务数,以获得以下输出
Count_Products Count_Transactions
1 1 <-- Transaction C
2 1 <-- Transaction B
3 2 <-- Transaction A & D
Count\u产品计数\u交易
1 1
输出:
Count_Products Count_Transactions
0 1 1
1 2 1
2 3 2
您可以使用管道
result=(df.groupby('Transaction')
.size()
.sort_values(ascending=False)
.reset_index()
.rename(columns={0:'Count_Transactions'})
.groupby('Count_Transactions')
.sum())
几乎和你想要的结果一样
Transaction
Count_Transactions
1 C
2 B
3 D A
嗨,伙计,非常感谢你的指导!!!我不知道我们可以在一个支点中嵌套一个groupby。成功了!再次感谢。顺便问一下,在您的第一条语句中,我如何按Count_事务降序排序,或者我要编写另一行代码来排序?谢谢。我想你应该可以在第一句话的结尾加上这样的话。你真漂亮!它又起作用了。谢谢我做了这个df2=pd.pivot_表(df.groupby('Transaction').size().reset_index(),index=0,values='Transaction',aggfunc=len)。reset_index().sort_值(by='Basket',升序=False)你好,谢谢。我需要计数,但我会将其保存在我最喜欢的代码段中,以防将来需要这样输出。再次感谢你,洛比。
Transaction
Count_Transactions
1 C
2 B
3 D A