簡體   English   中英

如何對列進行分組並找到唯一的行,然后在熊貓中應用sum()

[英]How to groupby column and find the unique row then apply sum() in pandas

我有一個數據框:

 Title     Product    No     Type
   A         Mo       3       Sky
   A         Mo       3       Sky
   A         Mo       3       Sky
   A         Md       2       Sky
   A         Md       3       Sky
   A         Md       2       Sky
   A         Md       6       Land
   A         Md       6       Land
   A         Md       6       Land
   A         Mo       5       Land
   A         Mo       5       Land

我希望有一個volume列,該列是No但groupby Type列的總和,然后僅找到唯一的行並將其匯總,以下是我的預期結果:

 Title     Product    No     Type      Sum
   A         Mo       3       Sky       8
   A         Mo       3       Sky       8
   A         Mo       3       Sky       8
   A         Md       2       Sky       8
   A         Md       2       Sky       8
   A         Md       2       Sky       8
   A         Md       6       Land      11
   A         Md       6       Land      11
   A         Md       6       Land      11
   A         Mo       5       Land      11
   A         Mo       5       Land      11

我嘗試運行下面的代碼,但出現錯誤無法訪問“ DataFrameGroupBy”對象的可調用屬性“ groupby”,請嘗試使用“ apply”方法

碼:

      FamilyVsM['Sum']=(FamilyVsM.groupby(['Type']).groupby(['Title','Product'])['No'].transform(lambda x: np.unique(x).sum()))  

IIUIC,您需要做

In [715]: df['Sum'] = df.groupby('Type')['No'].transform(lambda x: x.unique().sum())

In [716]: df
Out[716]:
   Title Product  No  Type  Sum
0      A      Mo   3   Sky    5
1      A      Mo   3   Sky    5
2      A      Mo   3   Sky    5
3      A      Md   2   Sky    5
4      A      Md   2   Sky    5
5      A      Md   2   Sky    5
6      A      Md   6  Land   11
7      A      Md   6  Land   11
8      A      Md   6  Land   11
9      A      Mo   5  Land   11
10     A      Mo   5  Land   11

這不是一個行代碼,但可能有效

# First, group by 'Type' and sum 'No'
df_group = df.groupby(['Type'], as_index=False)['No'].sum().rename(columns={'No': 'Sum'})

# Second, merge by 'Type'
df.merge(df_group, how='left', left_on='Type', right_on='Type')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM