对于Pandas的简单认识和基本操作的练习
一 介绍
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的库。
Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于 Excel 表格)。
Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。
Pandas 广泛应用在学术、金融、统计学等各个数据分析领域。
主要数据结构
Pandas主要引入了两种新的数据结构:DataFrame 和 Series。
Series :类似于一维数组或列表,是由一组数据以及与之相关的数据标签(索引)构成。Series 可以看作是 DataFrame 中的一列,也可以是单独存在的一维数据结构。
DataFrame:类似于一个二维表格,是 Pandas 中最重要的数据结构。DataFrame 可以看作是由多个 Series 按列排列构成的表格,它既有行索引也有列索引,因此可以方便地进行行列选择、过滤、合并等操作。
二 使用
Series
索引:每一个Series都有一个索引,可以是整数,字符串,日期等类型,如果没有显示指定索引,Pandas会默认自动创建一个从0开始的整数索引
数据类型:Series可以容纳不同数据类型的元素,包括整数,浮点数,字符串等
python
# series
#创建
#可以通过pd.Series()构造器创建 也可以传递一个数据数据加一个可选的索引数组
import pandas as pd
a = [1,2,3,4]
b = pd.Series(a)
time = ['23年','24年','25年','26年']
date = [100,200,300,400]
c = pd.Series(date,time)
print(c)
sites = {1:"0012",2:"0013",3:"0014",4:"0015"}
d = pd.Series(sites)
print(d)
var = pd.Series(sites,index=[1,3]) # 按照索引去获取数组
print(var)
DataFrame
列和行:DataFrame 由多个列组成,每一列都有一个名称,可以看作一个Series 同时还存在有行索引
二维结构:DataFrame 是一个二维表格 具有行和列 可以视为多个Series对象组成的字典
列的数据类型:不同的列可以包含不同的数据类型 例如整数 浮点型 字符串
创建方式
python
import pandas as pd
# 字典嵌套列表创建
sites = {"web_name":["Google","Baidu","SH"],"age":[1,3,9]}
var = pd.DataFrame(sites)
var
python
import pandas as pd
# 使用Series创建
data = {
"name":pd.Series(["一","二","三"]),
"age":pd.Series([21,22,23]),
"money":pd.Series([21.2,22.2,23.2])
}
data = pd.DataFrame(data)
data
文件处理
python
import pandas as pd
# csv数据读取
gender = pd.read_csv(r"D:\Study Note\Python_note\Pandas\gender_submission.csv")
gender
python
import pandas as pd
# JSON数据读取
JSON_Test = pd.read_json(r"D:\Study Note\Python_note\Pandas\test.json")
JSON_Test
保存为文件
python
import pandas as pd
# 数据
data = {
"name":pd.Series(["张三","李四","王五"]),
"age":pd.Series([21,22,23]),
"money":pd.Series([21.2,22.2,23.2])
}
# 将数据转换为DataFrame
data = pd.DataFrame(data)
# 将DATa Frame写入Excel文件中
data.to_excel('test.xlsx',index=False)
print("Excel文件生成成功")
常用函数
|------------------|-----------------|
| 函数 | 用法 |
| pd.merge() | 实现数据合并 |
| pd.concat() | 将多个数据框沿着某个轴进行连接 |
| loc[]和iloc[] | 对数据进行索引和选择 |
| drop() | 删除某些列或行 |
| isnull() | 检查失值并使用 |
| fillna() | 填充缺失值 |
| sort_values() | 排序 |
python
import pandas as pd
df = pd.read_csv(r"D:\Study Note\Python_note\Pandas\test.csv")
# df.head()
# 设置编号 方便筛查
df.set_index('PassengerId',inplace=True)
# 获取单个值
a = df.loc[900,'Name']
# 获取一个Series
b = df.loc[900,['Sex','Age']]
# 得到DataFrame
c = df.loc[[896,897,900],["Name","Sex","Age"]]
# 行列按区间查询
d = df.loc[896: 905,"Name":"Age"]
# 布尔查询
f = df.loc[df["Age"] < 18,:]
# 条件查询
g = df.loc[(df["Age"]<=30) & (df["Age"]>=18) & (df["Sex"] == "male"),:]
# 新增列查询
h = df.loc[:,"Year"] = df["Age"] + 2025
df.head()
python
# 统计函数
# 查看单个Series的数据
df["Age"].mean()
# 最大值
df["Age"].max()
# 最小值
df["Age"].min()
# 按值计数
df["Sex"].value_counts()
# 去重
df["Age"].unique()
# 缺失值处理
stu = pd.read_excel(r"D:\Study Note\Python_note\Pandas\test.xlsx",skiprows = 2)
# 检查空值
stu.isnull()
stu["name"].notnull()
# 排序
df2 = pd.read_csv(r"D:\Study Note\Python_note\Pandas\gender_submission.csv")
df2.sort_values("Age",ascending=False)
学习时间 2025年07月12日