Python3.5 Pandas模块之DataFrame用法实例分析

  • Post category:Python

Python3.5Pandas模块之DataFrame用法实例分析

什么是DataFrame

DataFrame 是一个二维表格结构,其中数据以行和列的形式存储。可以将其视为一个电子表格或 SQL 表。DataFrame 支持多种输入方式,如常见的 csv、excel 文件、Python 字典、Python 元组和列表等。

下面我们将演示通过 Python 元组或列表创建的简单 DataFrame

创建 DataFrame

首先我们需要通过 pandas 模块导入 DataFrame,然后使用 pd.DataFrame() 函数创建一个空的 DataFrame

import pandas as pd

# 创建空最基础的DataFrame
new_df = pd.DataFrame()

1. 通过 Python 元组创建

下面我们将使用 Python 元组来创建一个包含学生信息的 DataFrame

import pandas as pd

# 学生信息 (姓名、年龄、性别、成绩)
student_info = [('小红', 20, '女', 89),
                ('小明', 21, '男', 98),
                ('小王', 22, '男', 77),
                ('小李', 19, '女', 87)]

# 创建包含学生信息的 DataFrame
df = pd.DataFrame(student_info, columns=['学生姓名', '年龄', '性别', '成绩'])

print(df)

输出结果如下:

  学生姓名  年龄 性别  成绩
0   小红  20  女  89
1   小明  21  男  98
2   小王  22  男  77
3   小李  19  女  87

2. 通过 Python 列表创建

下面我们再使用 Python 列表来创建一个同样包含学生信息的 DataFrame

import pandas as pd

# 学生信息 (姓名、年龄、性别、成绩)
student_info = [['小红', 20, '女', 89],
                ['小明', 21, '男', 98],
                ['小王', 22, '男', 77],
                ['小李', 19, '女', 87]]

# 创建包含学生信息的 DataFrame
df = pd.DataFrame(student_info, columns=['学生姓名', '年龄', '性别', '成绩'])

print(df)

输出结果与上面的示例完全一致。

访问和操作 DataFrame

在创建完 DataFrame 后,我们需要对其进行访问和操作。这里我们将演示以下几个主题。

1. 访问数据列

我们可以通过列名称来访问数据列,例如:

import pandas as pd

# 学生信息 (姓名、年龄、性别、成绩)
student_info = [('小红', 20, '女', 89),
                ('小明', 21, '男', 98),
                ('小王', 22, '男', 77),
                ('小李', 19, '女', 87)]

# 创建包含学生信息的 DataFrame
df = pd.DataFrame(student_info, columns=['学生姓名', '年龄', '性别', '成绩'])

# 访问年龄列
age = df['年龄']
print(age)

输出结果如下:

0    20
1    21
2    22
3    19
Name: 年龄, dtype: int64

2. 访问数据行

我们可以通过 iloc 来访问数据行,例如:

import pandas as pd

# 学生信息 (姓名、年龄、性别、成绩)
student_info = [('小红', 20, '女', 89),
                ('小明', 21, '男', 98),
                ('小王', 22, '男', 77),
                ('小李', 19, '女', 87)]

# 创建包含学生信息的 DataFrame
df = pd.DataFrame(student_info, columns=['学生姓名', '年龄', '性别', '成绩'])

# 访问第三行数据
row3 = df.iloc[2]
print(row3)

输出结果如下:

学生姓名    小王
年龄      22
性别      男
成绩      77
Name: 2, dtype: object

3. 修改列名称

我们可以通过 rename 函数来修改其中的列名称,例如改变第一列的列名称:

import pandas as pd

# 学生信息 (姓名、年龄、性别、成绩)
student_info = [('小红', 20, '女', 89),
                ('小明', 21, '男', 98),
                ('小王', 22, '男', 77),
                ('小李', 19, '女', 87)]

# 创建包含学生信息的 DataFrame
df = pd.DataFrame(student_info, columns=['学生姓名', '年龄', '性别', '成绩'])

# 修改学生姓名为 姓名
df = df.rename(columns={'学生姓名': '姓名'})

print(df)

输出结果如下:

   姓名  年龄 性别  成绩
0  小红  20  女  89
1  小明  21  男  98
2  小王  22  男  77
3  小李  19  女  87

4. 筛选数据

我们可以通过条件筛选数据:

import pandas as pd

# 学生信息 (姓名、年龄、性别、成绩)
student_info = [('小红', 20, '女', 89),
                ('小明', 21, '男', 98),
                ('小王', 22, '男', 77),
                ('小李', 19, '女', 87)]

# 创建包含学生信息的 DataFrame
df = pd.DataFrame(student_info, columns=['学生姓名', '年龄', '性别', '成绩'])

# 筛选性别为女的数据
female = df[df['性别'] == '女']
print(female)

输出结果如下:

  学生姓名  年龄 性别  成绩
0   小红  20  女  89
3   小李  19  女  87