Python Pandas模块基础学习详解
简介
Pandas是基于Numpy的一款Python数据分析库,提供了一系列用于处理数据的函数和方法,可以完成数据的清洗、整理,数据的统计分析、可视化等操作。Pandas主要包含两个数据结构:Series和DataFrame。
Series
Series是一种类似数组的数据结构,可以存储一维数据。Series由两个数组组成,一个是数据部分,一个是索引部分。数据部分可以是任何Numpy支持的数据类型,包括整数、浮点数、字符串等。
创建Series
可以使用以下方式创建Series:
import pandas as pd
# 从列表创建
s = pd.Series([1, 3, 5, np.nan, 6, 8])
print(s)
# 从字典创建
d = {'a': 0., 'b': 1., 'c': 2.}
s = pd.Series(d)
print(s)
# 指定索引
s = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
print(s)
索引Series
可以使用以下方式对Series进行索引:
import pandas as pd
s = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
print(s)
# 通过索引获取元素
print(s['a'])
print(s[0])
# 通过位置获取元素
print(s.iloc[0])
DataFrame
DataFrame是一种二维表格数据结构,可以存储多种类型的数据,包括数值、字符串等。与Series类似,DataFrame也有两个数组组成:一个是数据部分,一个是行索引和列索引。
创建DataFrame
可以使用以下方式创建DataFrame:
import pandas as pd
import numpy as np
# 从列表创建
data = [['Tom', 10], ['Jack', 12], ['Mary', 15]]
df = pd.DataFrame(data, columns=['Name', 'Age'])
print(df)
# 从字典创建
data = {'Name': ['Tom', 'Jack', 'Mary'], 'Age': [10, 12, 15]}
df = pd.DataFrame(data)
print(df)
# 从NumPy数组创建
data = np.array([['Tom', 10], ['Jack', 12], ['Mary', 15]])
df = pd.DataFrame(data, columns=['Name', 'Age'])
print(df)
索引DataFrame
可以使用以下方式对DataFrame进行索引:
import pandas as pd
data = {'Name': ['Tom', 'Jack', 'Mary'], 'Age': [10, 12, 15]}
df = pd.DataFrame(data)
# 获取列
print(df['Name'])
print(df.Age)
# 获取行
print(df.loc[0])
print(df.iloc[0])
示例
假设我们有以下学生数据:
学号 | 姓名 | 年龄 | 成绩 |
---|---|---|---|
1 | Tom | 18 | 90 |
2 | Jack | 19 | 88 |
3 | Mary | 17 | 92 |
4 | John | 20 | 85 |
我们可以使用Pandas对这些数据进行处理和分析:
import pandas as pd
# 创建DataFrame
data = [['Tom', 18, 90], ['Jack', 19, 88], ['Mary', 17, 92], ['John', 20, 85]]
df = pd.DataFrame(data, columns=['Name', 'Age', 'Score'], index=[1, 2, 3, 4])
# 显示数据
print(df)
# 计算平均分
mean = df['Score'].mean()
print('平均分为:', mean)
# 显示年龄大于18的学生
print(df[df['Age'] > 18])
输出结果为:
Name Age Score
1 Tom 18 90
2 Jack 19 88
3 Mary 17 92
4 John 20 85
平均分为: 88.75
Name Age Score
2 Jack 19 88
4 John 20 85
另外,我们可以通过Pandas来读取和写入文件。例如,我们有一个CSV格式的文件student.csv
,其中包含学生的信息:
Name,Age,Score
Tom,18,90
Jack,19,88
Mary,17,92
John,20,85
我们可以使用以下代码来读取这个文件:
import pandas as pd
df = pd.read_csv('student.csv')
print(df)
输出结果为:
Name Age Score
0 Tom 18 90
1 Jack 19 88
2 Mary 17 92
3 John 20 85
同样,我们也可以使用Pandas将数据写入CSV格式的文件:
import pandas as pd
# 创建DataFrame
data = [['Tom', 18, 90], ['Jack', 19, 88], ['Mary', 17, 92], ['John', 20, 85]]
df = pd.DataFrame(data, columns=['Name', 'Age', 'Score'])
# 将数据写入CSV文件
df.to_csv('student_new.csv', index=None, header=True)