2880. 数据选取 - 力扣(LeetCode)
题目
DataFrame students
+-------------+--------+
| Column Name | Type |
+-------------+--------+
| student_id | int |
| name | object |
| age | int |
+-------------+--------+
编写一个解决方案,选择 student_id = 101
的学生的 name 和 age 并输出。
返回结果格式如下示例所示。
示例 1:
输入:
+------------+---------+-----+
| student_id | name | age |
+------------+---------+-----+
| 101 | Ulysses | 13 |
| 53 | William | 10 |
| 128 | Henry | 6 |
| 3 | Henry | 11 |
+------------+---------+-----+
输出:
+---------+-----+
| name | age |
+---------+-----+
| Ulysses | 13 |
+---------+-----+
解释:
学生 Ulysses 的 student_id = 101,所以我们输出了他的 name 和 age。
思路
- 利用df的loc方法进行行列定位,再选取。
代码实现
import pandas as pddef selectData(students: pd.DataFrame) -> pd.DataFrame:return students.loc[students["student_id"]==101, ["name","age"]]
知识积累
- 根据名称选取行列的数据:df.loc(行名称列表, 列名称列表)
- 根据索引选取对应行列的数据:df.iloc(行索引列表, 列索引列表)
- loc方法支持bool索引,即对行我们可以让他根据某个判断条件生成True/False列,然后对应的行是否选取就根据这个True/False条件来判断。