python pandas模块基础学习详解

  • Post category:Python

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)