【问题标题】:Python - Pandas filter and group byPython - Pandas 过滤器和分组依据
【发布时间】:2022-01-12 07:57:16
【问题描述】:

我需要最相似的列文件,我有数据:

输入:

我需要 cluster-1 的最大计数等于 cluster-2,一个不会被指定为不包含在集群中的文件

输出:

【问题讨论】:

  • 我无法理解您尝试执行的功能。你能详细说明一下吗?

标签: python pandas dataframe filter


【解决方案1】:

首先按原始列比较每个组的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

【讨论】:

  • @PatrikNovotný - 欢迎您!顺便说一句,你是斯洛伐克人还是捷克人?
  • 来自捷克语、děkuju、posílám pozdrav do Slovenska! :)
猜你喜欢
  • 1970-01-01
  • 2017-01-27
  • 2017-07-03
  • 2011-10-29
  • 2013-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多