🚬🚬前言

所需目标


查看牛客网哪些用户使用Python

python爬取牛客网选择题 牛客网 python_python

重要信息概要:如何输出Python这门语言 输出结果如下图所示:

python爬取牛客网选择题 牛客网 python_python爬取牛客网选择题_02


       那么问题来了,如何专门提取Python?

       前面我们提到了iloc()loc()来找到对应行列,那我们是不是可以用这俩函数来找到language 中的 Python很明显,是可以的。
(先来建个表)

import numpy as np
import pandas as pd
data= pd.DataFrame({
    "Nowcoder_ID":['first','second','third','fourth'],
    "Level":[1,2,3,2],
    "Language":['Python','CPP','Python','C/C#'],
    "Achievement_value":[8711,13,999999,2],
    "Num_of_exercise":[500,2,32,222],
    "Graduate_year":[np.nan,np.nan ,np.nan,'7']
})
#	Nowcoder_ID	Level	Language	Achievement_value	Num_of_exercise	Graduate_year
#0	first	1	Python	8711	500	NaN
#1	second	2	CPP	13	2	NaN
#2	third	3	Python	999999	32	NaN
#3	fourth	2	C/C#	2	222	7

       这时我们选择data中的Language列筛选,选中Python字段,代码如下:

print(data.loc[data['Language']=='Python'])

python爬取牛客网选择题 牛客网 python_Python_03


       很明显Python被筛选出来,那我们用iloc函数试试

data.iloc[:,data['Language']=='Python']
# NotImplementedError: iLocation based boolean indexing on an integer type is not available

       我们需要想想,loc()函数是按标签取数据,而iloc()函数是按索引位置选择数据,只接受 整型参数!!,所以iloc()是不行的。难道就没有别的办法了么?

有的!用query()函数!!通过布尔表达式来查询dataframe中的列,专门用来筛选数据。
(注意:请自己手敲一遍,否则是无法学到新知识,更别提记住这些函数)

data.query("Language == 'Python' ")

python爬取牛客网选择题 牛客网 python_python_04


最后附上此题代码及

import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv',sep=',',dtype=object)
# print(Nowcoder.loc[Nowcoder['Language']=='Python'])
# print(Nowcoder[Nowcoder['Language']=='Python'])
print(Nowcoder.query('Language=="Python"'))

       只有不断锻炼自己写代码的能力,才能牢记这些函数,并去有意识的使用。