簡體   English   中英

Python - Pandas 過濾和分組

[英]Python - Pandas filter and group by

我需要最相似的列文件,我有數據:

輸入:

輸入

我需要 cluster-1 等於 cluster-2 的最大計數,一個不會被指定為不包含在集群中的文件

Output:

輸出

按原始列比較每組的第一個Series.mode ,過濾並在必要時添加未過濾的行,並將分配bin分配給cluster-2

print (df)
  file  cluster-1  cluster-2
0    A          1          2
1    D          1          2
2    G          2          4
3    B          3          1
4    E          3          2
5    J          3          1

m = (df.groupby('cluster-1')['cluster-2']
      .transform(lambda x: x.mode().iat[0])
      .eq(df['cluster-2']))
df = (df[m].append(df[~m].assign(**{'cluster-1':'bin'}), ignore_index=True)
          .rename(columns={'cluster-1':'cluster'})
          .drop('cluster-2', axis=1))
print (df)
  file cluster
0    A       1
1    D       1
2    G       2
3    B       3
4    J       3
5    E     bin

暫無
暫無

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

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