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

day21和day22学习Pandas库

文章目录

  • 三、Pandas库
    • 1、概述
    • 2、安装
    • 3、内置的数据结构
      • 3.1 Series(一维数据结构)
        • 3.1.1创建的语法
        • 3.1.2 访问数据
        • 3.1.3 遍历
      • 3.2 DataFrame(二维数据结构)
        • 3.2.1创建语法
        • 3.2.2取值和赋值
        • 3.2.3修改数据和列名
        • 3.2.4删除数据
          • 未完待续...

三、Pandas库

1、概述

  • Pandas 的出现使得 Python 做数据分析的能力得到了大幅度提升,它主要实现了数据分析的五个重要环节:加载数据、整理数据、操作数据、构建数据模型、分析数据

2、安装

pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple/

3、内置的数据结构

3.1 Series(一维数据结构)

  • Series 是带标签的一维数组,这里的标签可以理解为索引,但这个索引并不局限于整数,它也可以是字符类型,比如 a、b、c 等
3.1.1创建的语法
pandas.Series( data, index , dtype , copy)
  • 参数:

    • data:一维数组
    • index:数据的索引,默认是0~n
    • dtype:数据类型,默认自动识别
    • copy:是否允许复制,默认False
  • 示例:

    import pandas as pd
    arr = pd.Series([1, 2, 3], ['a', 'b', 'c'])
    print(arr)
    
  • 输出

    a    1
    b    2
    c    3
    dtype: int64
    
3.1.2 访问数据
  • 标签切片取值,包含边界值
  • 示例:
import pandas as pd
arr = pd.Series([1, 2, 3], ['a', 'b', 'c'])
print(arr['a'])  # 输出 1
print(arr['a':'b']) 
# 输出 
a    1
b    2
dtype: int64
3.1.3 遍历
  • 语法1:for idx in s.index:

    • 获取Series数组的元素标签(索引)
    • 示例:
    import pandas as pd
    s = pd.Series([1, 2, 3], ['a', 'b', 'c'])
    for idx in s.index:
    	print(idx)
    # 输出 a b c  (三行)
    
  • 语法2:for v in s.values

    • 获取Series数组的所有元素(取值)
    • 示例:
    import pandas as pd
    s = pd.Series([1, 2, 3], ['a', 'b', 'c'])
    for v in s.values:
        print(v) # 输出 1 2 3 (三行)
    
  • 语法3:for idx, val in s.items():

    • 获取Series数组的所有元素和对应标签
    • 示例:
    import pandas as pd
    s = pd.Series([1, 2, 3], ['a', 'b', 'c'])
    for idx, val in s.items():
        print(idx, val)
    # 输出
    a 1
    b 2
    c 3
    

3.2 DataFrame(二维数据结构)

  • DataFrame 是一种表格型数据结构,它既有行标签,又有列标签

在这里插入图片描述

3.2.1创建语法
函数名参数
pd.DataFrame( data, index, columns, dtype, copy)data:一组数据(ndarray、series, map, lists, dict 等类型)
index:索引值,或者可以称为行标签
columns:列标签,默认为 RangeIndex (0, 1, 2, …, n)
dtype:数据类型
copy:默认为 False,表示复制数据 data

字典嵌套数组,多个数组长度要一致

  • 示例1:

    import pandas as pd
    # 创建 DataFrame 对象
    data = {"name":['小米','小红','小紫'],"age":[18,19,20]}
    s = pd.DataFrame(data=data)
    print(s)
    # 输出
        name  age
    0   小米   18
    1   小红   19
    2   小紫   20
    

使用Series数组创建DataFrame数组,多个Series长度可以不同,最后取并值,缺值的位置补NaN。

  • 示例:

    import pandas as pd
    data = {
       "name":pd.Series(['zs','ls','ww'],['a','b','c']),
       "age":pd.Series(['10'],['a'])
    }
    s = pd.DataFrame(data=data)
    print(s)
    # 输出
      name  age
    a   zs   10
    b   ls  NaN
    c   ww  NaN
    
3.2.2取值和赋值
  • 只能一列一列的切片操作(垂直砍),不能水平砍切片
import pandas as pd
data = {
   "name":pd.Series(['zs','ls','ww'],['a','b','c']),
   "age":pd.Series(['10'],['a'])
}
s = pd.DataFrame(data=data)  # 数据和上面的一样
# 输出列切片age======================
print(s['age'])
#输出
a     10
b    NaN
c    NaN
Name: age, dtype: object
# 添加一列======================
s['three'] = np.Series(["新列"],['a'])
print(s)
# 输出
   name  age three
a   zs   10   新列
b   ls  NaN   NaN
c   ww  NaN   NaN
  • s.assign()方法添加新列
import pandas as pd
data = {
   "name":pd.Series(['zs','ls','ww'],['a','b','c']),
   "age":pd.Series(['10'],['a'])
}
s = pd.DataFrame(data=data)  # 数据和上面的一样
# =============插入新列======================
# 注意:这里列表长度要和Dataframe的行数一致,否则报错
s = s.assign(three = [1,2,3])
print(s)
# 输出
  name  age  three
a   zs   10      1
b   ls  NaN      2
c   ww  NaN      3
  • s.insert()在指定位置插入新列
  • 参数:
    • loc: 插入位置的列索引。
    • column: 新列的名称。
    • value: 要插入的 Series(数据)。
import pandas as pd
data = {
   "name":pd.Series(['zs','ls','ww'],['a','b','c']),
   "age":pd.Series(['10'],['a'])
}
s = pd.DataFrame(data=data)  # 数据和上面的一样
# =============指定位置插入新列======================
# 使用 insert 方法在位置 1 插入新列 'D'
s.insert(1, 'D', [13, 14, 15])
print(result)
# 输出
  name   D  age
a   zs  13   10
b   ls  14  NaN
c   ww  15  NaN
3.2.3修改数据和列名
  • 修改数据:
import pandas as pd
data = {
   "name":pd.Series(['zs','ls','ww'],['a','b','c']),
   "age":pd.Series([10],['a'])
}
s = pd.DataFrame(data=data)  # 数据和上面的一样
#==============修改age列 +10 ==============
s["age"] = s["age"] + 10
print(s)
# 输出 ----   NaN 参与任何数学运算的结果依旧是 NaN
  name   age
a   zs  20.0
b   ls   NaN
c   ww   NaN
  • 修改列名字
    • 修改原数组名字:s. columns = [newname]
    • 返回新数组:s.rename( columns={ “旧名”:“新名” ,…} )
    • 示例:
import pandas as pd
data = {
   "name":pd.Series(['zs','ls','ww'],['a','b','c']),
   "age":pd.Series(['10'],['a'])
}
s = pd.DataFrame(data=data)  # 数据和上面的一样
#=====s. columns = [newname] 直接修改原数组 ========
s.columns = ["A","B"]
print(s)
# 输出 -- 列 name和age 修改成 A和B
    A    B
a  zs   10
b  ls  NaN
c  ww  NaN
#== s.rename(columns={"旧名":"新名",....}) 生产新数组========
s2 = s.rename( columns={"A":"Z","B","x"} )
print(s2)
# 输出  
    Z    x
a  zs   10
b  ls  NaN
c  ww  NaN
3.2.4删除数据
未完待续…
http://www.dtcms.com/a/107472.html

相关文章:

  • Ray Flow Insight:让分布式系统调试不再“黑盒“
  • 【模型部署】onnx模型-LOOP 节点实例
  • 2.3.3 使用@Profile注解进行多环境配置
  • 高通将进军英国芯片 IP 业务 Alphawave
  • Qt线程等待条件QWaitCondition
  • 深入理解DRAM刷新机制:异步刷新为何无需扣除刷新时间?
  • 风电行业预测性维护解决方案:给风机装上 “智能医生”,实现故障 “秒级预警”
  • HTMX构建无重载闪烁的交互式页面
  • Vue开发系列——npm镜像问题
  • Frida Hook Native:jobjectArray 参数解析
  • SQL Server 增删改查详解
  • 使用pytesseract和Cookie登录古诗文网~(python爬虫)
  • 从Hugging Face下载Qwen/Qwen2-Audio-7B-Instruct模型到本地运行,使用python实现一个音频转文字的助手
  • 树莓派超全系列教程文档--(21)用户配置
  • 芋道源码——Spring Cloud Bus RocketMQ 入门
  • 《全栈+双客户端Turnkey方案》架构设计图
  • 软件版本号递增应该遵循的规范
  • 分层防御:对称与非对称加密如何守护数字世界
  • 0402-对象和类(访问器 更改器 日期类)
  • 北方算网获邀在中关村论坛发言 解析人工智能+产业落地核心路径
  • 【数据库原理及安全实验】实验一 数据库安装与创建
  • openEuler24.03 LTS下安装HBase集群
  • YOLO学习笔记 | 基于YOLOv5的车辆行人重识别算法研究(附matlab代码)
  • Ubuntu 22.04 安装和运行 EDK2 超详细教程
  • 门控循环单元(GRU)基础学习与实例:电影评论情感分类
  • 微信小程序开发-01.介绍
  • Java 基础-29-final关键字-详解
  • 当网页受到DDOS网络攻击有哪些应对方法?
  • 【mysql 的安装及使用】
  • SuperMap GIS基础产品FAQ集锦(20250402)