繁体   English   中英

使用多列中的值进行过滤后,Python Pandas Dataframe获得行数

[英]Python Pandas Dataframe get count of rows after filtering using values from multiple columns

我有一个如下所示的数据框。 我想通过获取以下计数来构建数据配置文件。

1) 唯一学生ID的数量(学生数量)我的答案有效:

print(len(df['Student ID'].unique()))

2)独特的学生ID数,其中国际= N(非国际学生人数)

我的答案不起作用: print(len(df1.loc[(df1['Student ID'].unique())['International Student'] == N]))

3)International = N&ATAR 不为null的唯一学生ID的数量(拥有ATAR的非国际学生的数量)

4)ATAR 0 50 之间的唯一学生ID的数量

其他一些问题:

5)如何创建仅包含唯一学生ID和所有其他列的新数据框 ,在第一个学生ID之后删除每个学生ID的所有行

问题2-5的答案将不胜感激。

Student_ID            International       marks      ATAR

119                   N                    60         80
119                   N                    70         80
119                   N                    75         80
129                   Y                    78         75
129                   Y                    60         75 
155                   Y                    85         
155                   Y                    80          
df = pd.DataFrame({
'International': ['N', 'N', 'N', 'Y', 'Y', 'Y', 'Y'], 
'marks': [60, 70, 75, 78, 60, 85, 80], 
'Student_ID': [119, 119, 130, 140, 155, 155, 155], 
'ATAR': [80.0, 20.0, np.nan, 50.0, 15.0, np.nan, np.nan]
}).reindex_axis(['Student_ID','International','marks','ATAR'], axis=1)

print (df)
   Student_ID International  marks  ATAR
0         119             N     60  80.0
1         119             N     70  20.0
2         130             N     75   NaN
3         140             Y     78  50.0
4         155             Y     60  15.0
5         155             Y     85   NaN
6         155             Y     80   NaN

Need Series.nunique主要具有boolean indexingloc用于返回一列( Series ),最后drop_duplicates用于新df1

print(df['Student_ID'].nunique())
4
print(df.loc[df['International'] == 'N', 'Student_ID'].nunique())
2
print(df.loc[(df['International'] == 'N') & (df['ATAR'].notnull()), 'Student_ID'].nunique())
1
print(df.loc[df['ATAR'].between(0,50), 'Student_ID'].nunique())
3

df1 = df.drop_duplicates('Student_ID')
print (df1)
   Student_ID International  marks  ATAR
0         119             N     60  80.0
2         130             N     75   NaN
3         140             Y     78  50.0
4         155             Y     60  15.0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM