Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在一列上筛选,在另一列上排序,而不在数据帧中分组_Python_Python 3.x_Pandas_Dataframe - Fatal编程技术网

Python 在一列上筛选,在另一列上排序,而不在数据帧中分组

Python 在一列上筛选,在另一列上排序,而不在数据帧中分组,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我有一个数据框,有4列学生姓名、总分、入围名单、排名 我想根据total_marks列对行进行排序,其中的是入围的=“Y” 示例输入数据: name total_marks is_shortlisted Aman 67 Y Nitin 89 Y Ankur 76 Y Mohit 56 N Ashish 64

我有一个数据框,有4列学生姓名、总分、入围名单、排名

我想根据total_marks列对行进行排序,其中的是入围的=“Y”

示例输入数据:

name     total_marks   is_shortlisted
Aman       67              Y
Nitin      89              Y
Ankur      76              Y
Mohit      56              N
Ashish     64              Y
name     total_marks   is_shortlisted  rank 
Aman       67              Y            3
Nitin      89              Y            1
Ankur      76              Y            2
Mohit      56              N            nan
Ashish     64              Y            4
样本输出数据:

name     total_marks   is_shortlisted
Aman       67              Y
Nitin      89              Y
Ankur      76              Y
Mohit      56              N
Ashish     64              Y
name     total_marks   is_shortlisted  rank 
Aman       67              Y            3
Nitin      89              Y            1
Ankur      76              Y            2
Mohit      56              N            nan
Ashish     64              Y            4

loc
rank
一起使用:

df.assign(rank=df.loc[df.is_shortlisted.eq('Y')].total_marks.rank(ascending=False))

     name  total_marks is_shortlisted  rank
0    Aman           67              Y   3.0
1   Nitin           89              Y   1.0
2   Ankur           76              Y   2.0
3   Mohit           56              N   NaN
4  Ashish           64              Y   4.0

在了解您的数据的情况下,我们如何回答您的问题?请发一个@user3483203,现在请检查。我已经更新了问题。谢谢你的帮助。您能告诉我,如果我想将df复制到新的数据帧中,并且只复制到_shorlisted=Y的行中,我应该写什么吗。我需要一个不与旧版本链接的seprate副本。@priya我发布的代码返回一个副本,它不会修改数据帧,因此只需执行类似于
df1=code HERE
的操作,您就可以获得数据帧的副本:)