当其他列为空时,如何获取列的最小值?
How can I get the minimum value of a column when other column is null?
这是一个非常直接的问题,假设我有:
id grade coldate
123 100 2020-01-01
444 45 2020-02-01
NULL 55 2020-03-01
NULL 70 2020-04-01
我想要最差成绩,只考虑id为null的情况。所以即使444的等级比第三行的id低,我期望的输出是55。如果可能的话,我想把行号也带上。
有什么想法吗?一个简单的过滤器是行不通的,因为这不像我在寻找满足两个条件的东西。我考虑过编写一个函数,但工作量太大(我会先列出所有空值并存储在列表中,然后从数据框中获取最小值,仅过滤列表中的值)。
这个returns一个数据框,一行满足给定条件
df1=df[df['id']==NULL]
df1[df1['grade']==df1['grade'].min()]
试试这条线:
df.loc[df['id'].isna(), 'grade'].min()
输出:
55
将 loc
与布尔系列一起使用,其中列 'id'、isna
并获取 min
值
列,'grade'.
这是一个非常直接的问题,假设我有:
id grade coldate
123 100 2020-01-01
444 45 2020-02-01
NULL 55 2020-03-01
NULL 70 2020-04-01
我想要最差成绩,只考虑id为null的情况。所以即使444的等级比第三行的id低,我期望的输出是55。如果可能的话,我想把行号也带上。
有什么想法吗?一个简单的过滤器是行不通的,因为这不像我在寻找满足两个条件的东西。我考虑过编写一个函数,但工作量太大(我会先列出所有空值并存储在列表中,然后从数据框中获取最小值,仅过滤列表中的值)。
这个returns一个数据框,一行满足给定条件
df1=df[df['id']==NULL]
df1[df1['grade']==df1['grade'].min()]
试试这条线:
df.loc[df['id'].isna(), 'grade'].min()
输出:
55
将 loc
与布尔系列一起使用,其中列 'id'、isna
并获取 min
值
列,'grade'.