前面提到过在DataFrame中如何选取列,我们既可以用方括号来选取,也可以用圆点来选取。
语法结构归纳如下:
somedataframe.col_name 或者 somedataframe["col_name"]
选取的结果是一个Series,也就是一个带index的列向量。
那我们要是想选取行应该怎么操作呢?(可能比选择列要稍微烦一点)
我们依旧可以用方括号来选择想要的行信息。不过这时在方括号中要输入Boolean值,也就是一串True/False(逻辑运算的结果),并且这串逻辑值的长度和DataFrame的行数相一致。
movies = pd.read_csv("imdb_1000.csv")
如果我们要选取那些时长在200min以上的电影,我们可以:
is_long = movies.duration >=200 # 形成一个Boolean序列,并赋值给is_long
movies[is_long] # 在方括号中输入is_long,据此选择行信息,并返回一个DataFrame
还可以弄得更复杂:
movies[movies.genre.isin(["Action","Crime"])] # 题材为动作片或犯罪片的电影信息
movies[(movies.duration>=200)&(movies.genre=="Drama")] # 超过200分钟的戏剧片
总而言之,要做选行操作,语法结构如下:
somedataframe[BooleanValue]
我认为这种思路很像SQL中select...from...where...这一体系中的where。