关键词

浅析pandas 数据结构中的DataFrame

以下是浅析 Pandas 数据结构中的 DataFrame 的完整攻略。

什么是DataFrame

DataFrame 是 Pandas 库中最常用的数据结构之一,类似于 Excel 中的数据表格。DataFrame 可以看作是由多个 Series 组成的,每个 Series 代表着一列数据,而 DataFrame 中的每行数据则对应着多个 Series 中相同位置的元素。

创建DataFrame

创建 DataFrame 的方法有很多种,最常见的方法是通过传入字典来创建,例如:

import pandas as pd

data = {'姓名': ['张三', '李四', '王五'],
        '年龄': [28, 21, 32],
        '性别': ['男', '女', '男']}
df = pd.DataFrame(data)
print(df)

输出结果为:

   姓名  年龄 性别
0  张三  28  男
1  李四  21  女
2  王五  32  男

索引DataFrame

DataFrame 的索引方式有两种,一种是使用 loc,另一种是使用 iloc

loc 为例,如果我们想查看第一行数据,我们可以这样写:

first_row = df.loc[0]
print(first_row)

输出结果为:

姓名    张三
年龄    28
性别     男
Name: 0, dtype: object

修改DataFrame

DataFrame 中的数据是可以修改的,例如我们想将张三的年龄修改为 30,我们可以这样写:

df.loc[0, '年龄'] = 30
print(df)

输出结果为:

   姓名  年龄 性别
0  张三  30  男
1  李四  21  女
2  王五  32  男

示例说明

下面再举两个实际的例子来说明 DataFrame 的用法。

示例一

假设我们有一组关于学生体育成绩的数据,如下:

学号 姓名 年级 班级 性别 身高 体重 800m (s) 铅球(m)
001 张三 一年级 1 班 175 70 140 12
002 李四 二年级 3 班 163 50 180 8
003 王五 三年级 2 班 155 45 160 9
004 赵六 一年级 1 班 180 75 150 10
005 钱七 二年级 3 班 168 60 170 7

我们可以将这些数据读入到 DataFrame 中:

import pandas as pd

data = pd.read_excel('students_scores.xlsx')
df = pd.DataFrame(data)
print(df)

如果将上面的数据保存在students_scores.xlsx文件中,那么这段代码会输出如下内容:

   学号  姓名   年级   班级 性别   身高  体重  800m (s)  铅球(m)
0    1  张三  一年级  1 班  男  175  70        140      12
1    2  李四  二年级  3 班  男  163  50        180       8
2    3  王五  三年级  2 班  女  155  45        160       9
3    4  赵六  一年级  1 班  男  180  75        150      10
4    5  钱七  二年级  3 班  女  168  60        170       7

我们还可以使用 describe() 方法查看这些数据的基本统计信息:

print(df.describe())

输出结果为:

            学号          身高         体重    800m (s)     铅球(m)
count  5.000000    5.000000   5.000000     5.000000   5.000000
mean   3.000000  168.200000  60.000000   160.000000   9.200000
std    1.581139    9.183772  14.142136    22.023747   2.774887
min    1.000000  155.000000  45.000000   140.000000   7.000000
25%    2.000000  163.000000  50.000000   150.000000   8.000000
50%    3.000000  168.000000  60.000000   160.000000   9.000000
75%    4.000000  175.000000  70.000000   170.000000  10.000000
max    5.000000  180.000000  75.000000   180.000000  12.000000

示例二

假设我们有一个有关电影票房收入的数据集,如下:

电影名称 票房收入(万元) 上映天数 评分
复仇者联盟4:终局之战 42949 92 8.4
哪吒之魔童降世 36287 161 8.7
飞驰人生 20436 108 7.9
红海行动 15230 82 8.0
我和我的祖国 15204 80 8.0
美人鱼 14492 67 6.0
海王 13772 68 7.1
武林外传 12109 53 8.9
煎饼侠 10533 27 6.0
战狼2 9846 70 6.0

我们可以将这些数据读入到 DataFrame 中:

import pandas as pd

data = {'电影名称': ['复仇者联盟4:终局之战', '哪吒之魔童降世', '飞驰人生', '红海行动', '我和我的祖国', '美人鱼', '海王', '武林外传', '煎饼侠', '战狼2'],
        '票房收入(万元)': [42949, 36287, 20436, 15230, 15204, 14492, 13772, 12109, 10533, 9846],
        '上映天数': [92, 161, 108, 82, 80, 67, 68, 53, 27, 70],
        '评分': [8.4, 8.7, 7.9, 8.0, 8.0, 6.0, 7.1, 8.9, 6.0, 7.0]}
df = pd.DataFrame(data)
print(df)

输出结果为:

             电影名称  票房收入(万元)  上映天数   评分
0  复仇者联盟4:终局之战        42949     92  8.4
1        哪吒之魔童降世        36287    161  8.7
2            飞驰人生        20436    108  7.9
3            红海行动        15230     82  8.0
4         我和我的祖国        15204     80  8.0
5              美人鱼        14492     67  6.0
6               海王        13772     68  7.1
7            武林外传        12109     53  8.9
8              煎饼侠        10533     27  6.0
9              战狼2         9846     70  7.0

我们可以根据票房收入对电影进行排序:

df = df.sort_values('票房收入(万元)', ascending=False)
print(df)

输出结果为:

             电影名称  票房收入(万元)  上映天数   评分
0  复仇者联盟4:终局之战        42949     92  8.4
1        哪吒之魔童降世        36287    161  8.7
2            飞驰人生        20436    108  7.9
3            红海行动        15230     82  8.0
4         我和我的祖国        15204     80  8.0
5              美人鱼        14492     67  6.0
6               海王        13772     68  7.1
7            武林外传        12109     53  8.9
8              煎饼侠        10533     27  6.0
9              战狼2         9846     70  7.0

本文链接:http://task.lmcjl.com/news/17260.html

展开阅读全文