我有下面的数据框,我需要对我在值中列出的一个特定列使用聚合函数。我用的是熊猫的透视表。你知道吗
Sample ID Type Score Freq
AE01 AAA Non 0.65 1
AE01 BBB IND 0.57 14
AE03 SAS IND 0.56 14
AE03 SAP IND 0.689 15
AE03 TCS IND 0.56 16
AE05 BBB IND 0.85 17
AE05 CTC IND 0.45 18
AE05 CTC Non 0.15 19
AE05 CTC Non 0.14 20
AE05 CTC Non 0.4678 21
下面是我用的剧本
table_pat_rel = pd.pivot_table(df,index=["ID",'Type'],values=['Sample'],
aggfunc={'Sample':np.size})
给出以下输出
ID Type Sample
AAA Non 1
BBB IND 2
SAS IND 1
SAP IND 1
TCS IND 1
CTC IND 5
但我的目标是
ID Recurrence Sample
AAA 1 AE01
BBB 2 AE01
AE05
SAS 1 AE03
SAP 1 AE03
TCS 1 AE03
CTC 4 AE05
我试着用groupby如下
df.drop_duplicates(['Sample', 'ID']).groupby(['ID','Sample']).size().sort_values(ascending=True).head()
数据:
我认为您需要交换
Sample
和Type
,而不是values=['Sample']
使用values=['Freq']
,但似乎可以使用其他一些不用于index
的列,因为使用aggfunc=len
(与aggfunc='size'
相同)或者将^{} 与聚合^{} 一起使用:
相关问题 更多 >
编程相关推荐