我有一个名为students.csv
的文件。有几列。我想对两列使用if
语句,gender
和scores
。我想展示得分最高的男生(按降序排列)。因此,我需要编写一个可以从csv文件中读取的脚本,并将这两列(性别和分数)结合起来。
我试图使用:
import pandas as pd
data = pd.read_csv('students.csv')
print(data[data["Gender"] == 1])
在这里,我给男生= 1,女生= 0。 但是,我不知道如何打印得分最高的男学生。
答案 0 :(得分:1)
如果您需要更多作为一个值,则可以使用loc
选择Gender
和nlargest
,参数n
:
n :int
返回这么多降序排序值
print data
Scores Gender
0 10 0
1 5 1
2 5 0
3 7 1
4 8 1
5 3 0
print data.loc[data['Gender']==1, 'Scores'].nlargest(n=3)
4 8
3 7
1 5
Name: Scores, dtype: int64
如果您只需要得分最高,请使用max
中提到的Edchum
{/ 3}}:
print data.loc[data['Gender']==1, 'Scores'].max()
8
或Gender
使用comment Gender
print data.groupby('Gender')['Scores'].nlargest(n=2)
Gender
0 0 10
2 5
1 4 8
3 7
dtype: int64
所有indexes
:
print data
Names Scores Gender
0 a 10 0
1 b 5 1
2 c 5 0
3 d 7 1
4 e 8 1
5 f 3 0
print data.groupby('Gender')['Scores'].nlargest(n=2).reset_index(level=0,name='Max')
Gender Max
0 0 10
2 0 5
4 1 8
3 1 7
df =pd.merge(data[['Names']],
data.groupby('Gender')['Scores'].nlargest(n=2).reset_index(level=0, name='Max'),
left_index=True,
right_index=True)
Names Gender Max
0 a 0 10
2 c 0 5
4 e 1 8
3 d 1 7
如果您需要姓名,可以Gender
使用groupby
:
print data
Names Scores Gender
0 a 10 0
1 b 5 1
2 c 5 0
3 d 7 1
4 e 8 1
5 f 3 0
print data.loc[data['Gender']==1, 'Scores'].nlargest(n=2)
4 8
3 7
Name: Scores, dtype: int64
print pd.concat([data['Names'],
data.loc[data['Gender']==1, 'Scores'].nlargest(n=2)],
axis=1,
join='inner')
Names Scores
4 e 8
3 d 7
如果您只需要一个print data
Names Scores Gender
0 a 10 0
1 b 5 1
2 c 5 0
3 d 7 1
4 e 8 1
5 f 3 0
print data.loc[data['Gender'] == 1, 'Scores'].nlargest(n=2).index
Int64Index([4, 3], dtype='int64')
print data.loc[data.loc[data['Gender'] == 1,'Scores'].nlargest(n=2).index,['Names','Scores']]
Names Scores
4 e 8
3 d 7
,请使用nlargest
:
findDialog->setModel(false);
findDialog->show();
或者更简单的解决方案是再次使用merge
:
setModel(false);
答案 1 :(得分:1)
您也可以使用
pandas.DataFrame.sort_values(by='Scores')
答案 2 :(得分:1)
您可以在pandas中使用.max()命令
import pandas as pd
df = pd.read_csv("student.csv")
data = df[df["Gender"]==1].max()
print data
输出:
stud daniel
Gender 1
marks 78
dtype: object