Python:使用值作为索引重新透视或重新分组

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

我是熊猫队的新手,一直在尝试通过使用输出值来找出如何重新调整轴心或分组。例如,我使用下面的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
我使用以下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