如何用Python的pandas库获取 表格的行数和列数

24 阅读2分钟

题目

DataFrame players:
+-------------+--------+
| Column Name | Type   |
+-------------+--------+
| player_id   | int    |
| name        | object |
| age         | int    |
| position    | object |
| ...         | ...    |
+-------------+--------+

编写一个解决方案,计算并显示 players行数和列数

将结果返回为一个数组:

[number of rows, number of columns]

返回结果格式如下示例所示。

示例 1:

输入:
+-----------+----------+-----+-------------+--------------------+
| player_id | name     | age | position    | team               |
+-----------+----------+-----+-------------+--------------------+
| 846       | Mason    | 21  | Forward     | RealMadrid         |
| 749       | Riley    | 30  | Winger      | Barcelona          |
| 155       | Bob      | 28  | Striker     | ManchesterUnited   |
| 583       | Isabella | 32  | Goalkeeper  | Liverpool          |
| 388       | Zachary  | 24  | Midfielder  | BayernMunich       |
| 883       | Ava      | 23  | Defender    | Chelsea            |
| 355       | Violet   | 18  | Striker     | Juventus           |
| 247       | Thomas   | 27  | Striker     | ParisSaint-Germain |
| 761       | Jack     | 33  | Midfielder  | ManchesterCity     |
| 642       | Charlie  | 36  | Center-back | Arsenal            |
+-----------+----------+-----+-------------+--------------------+
输出:
[10, 5]
解释:
这个 DataFrame 包含 10 行和 5 列。

解决方案

1、审题,理解题意

题目给定一个DataFrame表,要求返回 DataFrame表有多少行,多少列数据。要解这个题,先要理解 Pandas 库中的shape 属性,是以元组(行、列)的形式返回 DataFrame 或 Series 的维度。调用该属性时,返回一个元组 (number of rows, number of columns)

2、解题思路

导入需要的库:

import pandas as pd #我们首先需要导入 pandas 库,这是一个在 Python 语言中用于数据操作和分析的强大工具。

定义函数:

def getDataframeSize(players: pd.DataFrame) -> List: #该行定义了一个名为 getDataframeSize 的新函数,将 DataFrame players 作为输入参数,并返回一个包含 DataFrame players 中的行数和列数的列表。

使用 shape 属性,返回元组:

return [players.shape[0], players.shape[1]] #players.shape[0] 给出 DataFrame players 中的行数,players.shape[1] 给出 DataFrame players 中的列数。

返回的元组意思是,该DataFrame players表,一共有10行50列数据,每一行数据代表一个运动员,每一列数据描述运动员的属性。

3、代码实现

import pandas as pd

def getDataframeSize(players: pd.DataFrame) -> List:
    return [players.shape[0], players.shape[1]]

4、执行结果

image-20231025000646379