代码之家  ›  专栏  ›  技术社区  ›  jeangelj

Python pandas唯一重复数据消除总和透视表

  •  0
  • jeangelj  · 技术社区  · 7 年前

    使用数据帧df:

    User_ID | Transaction_ID | Transaction_Row | Category
    3824739         123               -1           A
    3824739         123               -1           A
    2398473         345               0            A
    1230984         567               1            C
    

    我需要按类别和sum Transaction\u行透视上述数据。但是,我需要按事务ID分组,以便对于上面的事务ID 123,我只计算一次-1。

    我可以使用pandas数据透视表还是仅使用groupby?

    pd.pivot_table(df,index=["Category"],values=["Transaction_Row"],aggfunc=np.sum)
    

    电流输出:

    Category | Sum of Transaction_Row
       A               -2
       C                1
    

    所需输出:

    Category | Sum of Transaction_Row
       A               -1
       C                1
    

    我不知道,如何编辑上面的语句来解决重复计算的问题。

    非常感谢。

    1 回复  |  直到 7 年前
        1
  •  2
  •   D_Serg    7 年前

    我希望我没有弄错你的问题。 首先,仅基于Transaction\u ID和Transaction\u行删除重复项。然后做旋转。

    df_2 = df.drop_duplicates(subset=['Transaction_ID', 'Transaction_Row']) 
    pd.pivot_table(df_2, index=["Category"], values=["Transaction_Row"], aggfunc=np.sum)