题目
DataFrame students
+-------------+--------+
| Column Name | Type |
+-------------+--------+
| student_id | int |
| name | object |
| age | int |
| grade | float |
+-------------+--------+
编写一个解决方案来纠正以下错误:
grade
列被存储为浮点数,将它转换为整数。
返回结果格式如下示例所示。
示例 1:
输入:
DataFrame students:
+------------+------+-----+-------+
| student_id | name | age | grade |
+------------+------+-----+-------+
| 1 | Ava | 6 | 73.0 |
| 2 | Kate | 15 | 87.0 |
+------------+------+-----+-------+
输出:
+------------+------+-----+-------+
| student_id | name | age | grade |
+------------+------+-----+-------+
| 1 | Ava | 6 | 73 |
| 2 | Kate | 15 | 87 |
+------------+------+-----+-------+
解释:
grade 列的数据类型已转换为整数。
思路
- 用df的astype方法将对应列转到对应的类型上。
代码实现
import pandas as pd
def changeDatatype(students: pd.DataFrame) -> pd.DataFrame:
students["grade"] = students["grade"].astype(int)
return students
知识积累
- 将一个或多个列转变数据类型:
- df[对应列] = df[对应列].astype(转变后的数据类型)
- df = df.astype(待转变的多个列的转变字典(列名(字符串形式): 转变后的数据类型(字符串形式)))
官方题解
- 官解用的是第二种方法(好像快一点,以后再遇到的时候再研究为啥吧)。
- 复现:
import pandas as pd def changeDatatype(students: pd.DataFrame) -> pd.DataFrame: students = students.astype({"grade":int}) return students