当前位置: 首页 > news >正文

【数据分析预备】Pandas

Pandas

构建在NumPy之上,继承了NumPy高性能的数组计算功能,同时提供更多复杂精细的数据处理功能

  • 安装
    pip install pandas
  • 导入
import pandas as pd

Series

键值对列表

# 创建Series
s1 = pd.Series([5, 17, 3, 26, 31])
s1

0 5
1 17
2 3
3 26
4 31
dtype: int64

# 获得Series的元素和索引
s1.values

array([ 5, 17, 3, 26, 31])

s1.index

RangeIndex(start=0, stop=5, step=1)

# 索引和切片操作
print(s1[2])
print(s1[1:3])

3
1 17
2 3
dtype: int64

#既可以用标签索引也可以用位置索引
s1 = pd.Series([5, 17, 3, 26, 31], index=["a","d","b","c","e"])
print(s1)
print(s1["b"])
print(s1[1])

a 5
d 17
b 3
c 26
e 31
dtype: int64
3
17

# 标签索引切片包含结束值
s1["d":"c"]

d 17
b 3
c 26
dtype: int64

# 用索引获得任意元素
s1[["a","e","c"]]

a 5
e 31
c 26
dtype: int64

# loc:用标签索引 iloc:用位置索引
s2 = pd.Series([5,17,3,26,31], index=[1,3,5,7,9])
print(s2.loc[3])
print(s2.iloc[3])print(s2.loc[1:3]) #包括结束
print(s2.iloc[1:3]) #不包括结束位置

17
26
1 5
3 17
dtype: int64
3 17
5 3
dtype: int64

# 创建Series的另一种方式
s3 = pd.Series({"qc":4.1,"blb":2.2,"xhs":5.3,"td":3.7,"hg":6.8})
s3

qc 4.1
blb 2.2
xhs 5.3
td 3.7
hg 6.8
dtype: float64

# 查看标签是否存在
"qc" in s3
# 可以根据条件筛选
s3[(s3>5)&(s3<6)]
# 计算操作索引自动对齐,缺失值用0代替
s1.add(s2, fill_value=0)
# 统计信息
s1.describe()

count 5.000000
mean 16.400000
std 12.401613
min 3.000000
25% 5.000000
50% 17.000000
75% 26.000000
max 31.000000
dtype: float64

# 对元素分别操作
# 使用函数作为参数,不改变原始Series,返回新Series
# grades = scores.apply(get_grade_from_score)

Dataframe

数据表格,可以看成由Series组成的字典

  • 创建:值是Series或列表,列是各个Series对应的列名
df4 = pd.DataFrame({"学号":{"小明":"01","小红":"02","小杰":"03"}, "班级":{"小明":"二班","小红":"一班","小杰":"二班"},"成绩":{"小明":92,"小红":67,"小杰":70}})
df4

在这里插入图片描述

df4.index #获取索引
df4.columns #获取列名
df4.values #获取值(返回NumPy数组)
# 转置
df4.T
df4["班级"]

小明 二班
小红 一班
小杰 二班
Name: 班级, dtype: object

df4.班级  #列名也是dataFrame的属性,特殊符号不适用

小明 二班
小红 一班
小杰 二班
Name: 班级, dtype: object

df4[["学号", "成绩"]]
df4.loc["小红"]

学号 02
班级 一班
成绩 67
Name: 小红, dtype: object

df4.loc["小红","成绩"]

np.int64(67)

df4.loc[:,"成绩"]
df4[df4.成绩 > 67]
# 返回前5行  df4.head()
df4.head(2)# 对列赋值:更新或者增加列值
df4["成绩"] = pd.Series([88, 77, 66], index=["小明","小红","小杰"])
df4["性别"] = ["男", "女", "男"]
df4# 对行用loc
df4.loc["小虎"] = ["04", "三班", 99, "男"]
df4df4.drop(["小明", "小虎"]) # 删除行df4.drop("班级", axis=1) # 删除列 axis=1横向依次(判断)操作# df1.mean(axis=1) # 对行求平均值# df1.apply(函数)# 将函数用在每列
# df1.applymap(function) # 用在每个元素
# 原始df并不改变df4.describe() # 忽略非数字列
http://www.lryc.cn/news/436199.html

相关文章:

  • MATLAB-基于高斯过程回归GPR的数据回归预测
  • 欧洲国际眼科盛会,中国眼科专家周进斩获六项屈光大奖
  • MySQL——数据库的高级操作(二)用户管理(2)创建普通用户
  • VIT论文阅读
  • Python编程入门必备:def关键字与函数参数
  • LiveKit的agent介绍
  • 青龙面板 升级 及其 依赖更新修复 检测and日志删除等
  • 坐牢第三十七天(Qt)
  • Vidu 全球首发「主体参照」新功能,一键同步角色特征;GPT-4o 实时音频项目负责人离职创业丨 RTE 开发者日报
  • 电子地图的主要功能与应用
  • 基于Java+SpringBoot+Vue+MySQL的西安旅游管理系统网站
  • 简单介绍 NVIDIA推出的图形处理单元(GPU)架构“安培架构“
  • Qiskit:量子计算的Python工具包
  • Python——贪吃蛇
  • WPF 依赖属性与附加属性(面试长问)
  • Python 中的各括号用法
  • 业务流程建模(BPM)的重要性及其应用
  • isxdigit函数讲解 <ctype.h>头文件函数
  • Linux中安装NextCloud
  • 【编程基础知识】什么是数据库事务
  • 移植案例与原理 - XTS子系统之应用兼容性测试用例开发
  • 关于linux里的df命令以及inode、数据块-stat链接数以及关于awk文本处理命令中内置函数sub、gsub、sprintf
  • 如何本地搭建Whisper语音识别模型
  • 微信小程序仿微信聊天界面
  • 文件用电脑生成的在线技巧,能够轻松将多种类型文件转二维码
  • QT实现TCP/UDP通信
  • 流程自动化变革:看低代码开发如何赋能企业创新转型
  • 可提示 3D 分割研究里程碑!SAM2Point:SAM2加持泛化任意3D场景、任意提示!
  • Rabbitmq中得RPC调用代码详解
  • ISAC: Toward Dual-Functional Wireless Networks for 6G and Beyond【论文阅读笔记】