🚬🚬前言
所需目标
查看牛客网哪些用户使用Python
重要信息概要:如何输出Python这门语言
输出结果如下图所示:
那么问题来了,如何专门提取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
被筛选出来,那我们用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' ")
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"'))
只有不断锻炼自己写代码的能力,才能牢记这些函数,并去有意识的使用。