每日leetcode

发布于:2025-06-20 ⋅ 阅读:(14) ⋅ 点赞:(0)

2886. 改变数据类型 - 力扣(LeetCode)

题目

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 列的数据类型已转换为整数。

思路

  1. 用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

网站公告

今日签到

点亮在社区的每一天
去签到