根据其他列值获取列值的最小值

时间:2021-02-11 08:27:14

标签: python-3.x pandas dataframe pandas-groupby

我试图根据具有条件的列的最小值获取整行

DF:

colA    colB    colC
    A   B   2
    B   C   3
    C   D   4
    D   E   5
    E   A   2
    A   A   0
    B   B   0
    C   C   0
    D   D   0
    E   E   0

试图以最快的方式获取 colC 是最小整数但 colA 和 colB 不相等的整行

输出:

A   B   2
E   A   2

1 个答案:

答案 0 :(得分:1)

您可以先过滤掉不同的列,然后排序并获得最低的 2 个值:

df1 = df[df['colA'].ne(df['colB'])].sort_values('colC').head(2)

对于所有其他行,按索引从原始行中删除行:

df2 = df.drop(df1.index)

print (df1)
  colA colB  colC
0    A    B     2
4    E    A     2

print (df2)
  colA colB  colC
1    B    C     3
2    C    D     4
3    D    E     5
5    A    A     0
6    B    B     0
7    C    C     0
8    D    D     0
9    E    E     0
相关问题