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