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

Pandas:Series和DataFrame的概念、常用属性和方法

本文目录:

  • 一、Series和Dataframe的概念
  • 二、创建Series对象
  • 三、创建Dataframe对象
    • (一)Series
      • 1.Series的常用属性总结如下:
      • 2.Series的常用方法总结如下:
    • (二)Dataframe
      • 1.Dataframe的常用属性
      • 2.Dataframe的常用方法

一、Series和Dataframe的概念

Pandas 只有两种核心数据结构:

Series:一维数组(单列数据,带索引)。

DataFrame:二维表格(多列 Series 的集合,每列可不同数据类型)。
在这里插入图片描述

【特别分享】

Pandas没有独立的“行”对象源于两点原因****:

(1)设计哲学:Pandas 是围绕 列式存储(Column-oriented) 优化的,列操作(如聚合、过滤)比行操作更高效;

(2)内存布局:DataFrame 的每列(Series)在内存中连续存储,而行是跨列的,访问效率较低。

二、创建Series对象

Series是最基本的数据结构对象,DataFrame 的一列就是一个 Series;

它是一个类似于一维数组的对象;

它的创建主要包括三个部分:values(值:可为列表、字典、numpy数组、标量值等等)、index(行索引)、name(series名字),其中values是必须有的,index和name可有可无,当不指定index时,系统会默认从0开始。

Series的创建方式有多种:
在这里插入图片描述
代码如下(列举3种,其它类同):

import pandas as pd# 从列表创建,默认索引为 0, 1, 2...
data = [10, 20, 30, 40]
s = pd.Series(data)
print(s)# 字典的键自动成为索引
data = {'a': 10, 'b': 20, 'c': 30}
s = pd.Series(data)
print(s)# 所有值均为 5,索引需单独指定
s = pd.Series(5, index=['a', 'b', 'c'])
print(s)注意:Series的缺失值用 NaN 表示。

三、创建Dataframe对象

DataFrame是Pandas中最基本的数据结构,Series的许多属性和方法在DataFrame中也一样适用,可以理解为一个二维表结构。

Dataframe的创建方式主要包括列表创建和字典创建,还有csv文件读取,代码如下:

import pandas as pd
#从字典创建
data = {'Name': ['Alice', 'Bob', 'Charlie'],'Age': [25, 30, 35],'City': ['New York', 'London', 'Tokyo']
}df = pd.DataFrame(data)
print(df)#从列表创建
data = [['Alice', 25, 'New York'],['Bob', 30, 'London'],['Charlie', 35, 'Tokyo']
]df = pd.DataFrame(data, columns=['Name', 'Age', 'City'])
print(df)#从csv文件读取
df = pd.read_csv('data.csv')  # 读取 CSV 文件
print(df.head())  # 查看前5行

四、属性和方法

Series和Dataframe的很多属性和方法是共通的。

(一)Series

1.Series的常用属性总结如下:

在这里插入图片描述
代码如下:

例(列举重点):
import pandas as pd
s = pd.Series([1, 2], name='my_series')
print(s)  # 输出:'my_series's1 = pd.Series([1, 2, 3], name="A")  
s2 = pd.Series(["X", "Y", "Z"], name="B")print(s1.ndim)
print(s1.shape)
print(s1.loc[1]) #按索引1取值
print(s1.iloc[1])#按索引位置1取值

2.Series的常用方法总结如下:

在这里插入图片描述

代码如下:

例(列举重点):print(df.head())    #前五条数据
print(s.describe())   #查看详情
s1=s.sample(2)   #随机抽取2条数据
print(s1)    
print(s1.sort_values()) #默认升序,降序需指定ascending=False#扩展:
print(s1.sort_values(ascending=False))   #降序排列,返回新的
print(s1.sort_values(ascending=True))   #升序排列,返回新的
print(s1.describe(include="all"))    #打印所有字段详细信息
print(s1.describe(exclude="int,float")) #打印除了int和float的字段信息

(二)Dataframe

1.Dataframe的常用属性

在这里插入图片描述

2.Dataframe的常用方法

在这里插入图片描述

有关属性和方法整体代码如下:

例(列举部分重点):
import pandas as pd# 加载数据集, 得到df对象
df = pd.read_csv('data/scientists.csv')print('=============== 常用属性 ===============')
# 查看维度, 返回元组类型 -> (行数, 列数), 元素个数代表维度数
print(df.shape)
# 查看数据值个数, 行数*列数, NaN值也算
print(df.size)
# 查看数据值, 返回numpy的ndarray类型
print(df.values)
# 查看维度数
print(df.ndim)
# 返回列名和列数据类型
print(df.dtypes)
# 查看索引值, 返回索引值对象
print(df.index)
# 查看列名, 返回列名对象
print(df.columns)
print('=============== 常用方法 ===============')
# 查看前5行数据
print(df.head())
# 查看后5行数据
print(df.tail())
# 查看df的基本信息
df.info()
# 查看df对象中所有数值列的描述统计信息
print(df.describe())
# 查看df对象中所有非数值列的描述统计信息
# exclude:不包含指定类型列
print(df.describe(exclude=['int', 'float']))
# 查看df对象中所有列的描述统计信息
# include:包含指定类型列, all代表所有类型
print(df.describe(include='all'))
# 查看df的行数
print(len(df))
# 查看df各列的最小值
print(df.min())
# 查看df各列的非空值个数
print(df.count())
# 查看df数值列的平均值
print(df.mean())

今天分享到此结束。

相关文章:

  • 【漫话机器学习系列】270.KNN算法(K-Nearest Neighbors)
  • 【python进阶知识】Day 31 文件的规范拆分和写法
  • 工业数据治理标准规范深度解析
  • 150.WEB渗透测试-MySQL基础(五)
  • JAVA打飞机游戏设计与实现(论文+源代码)【源码+文档+部署】
  • Splitpanes (可调整大小的面板分割布局)插件应用
  • ALSA 插件是什么? PortAudio 断言失败是什么意思?
  • (05)数字化转型之生产制造:从通常的离散制造到柔性化生产的全景指南
  • 计算机视觉与深度学习 | PSO-MVMD粒子群算法优化多元变分模态分解(Matlab完整代码和数据)
  • TDengine 更多安全策略
  • # 怎么让 java -jar example.jar 产生的日志输出到指定文件
  • 经典案例 | 数字化转型新范式:规划引领,专题突破
  • 轻量级高性能推理引擎MNN 学习笔记 04.线性回归
  • 手动导出Docker进行并自动执行脚本命令的操作方法
  • uni-app项目从0-1基础架构搭建全流程
  • 一些C++入门基础
  • 二维码外面套一个黄色圆圈 之间间隙太大
  • 小红书“开门”,摸到电商金钥匙?
  • 设计模式----软考中级软件设计师(自用学习笔记)
  • 【nRF9160 常用prj.conf配置与AT指令介绍】
  • 体坛联播|王楚钦晋级男单16强,德布劳内曼城主场谢幕
  • 中国华能:1-4月新能源装机突破1亿千瓦,利润总额再创新高
  • 宋鹍已任首都机场集团有限公司董事长、党委书记
  • 山西资深公益人士孙超因突发急病离世,终年37岁
  • 总书记回信二周年之际,上海如何将垃圾分类深度融入城市发展?
  • 最高法:依法惩治损害民营企业合法权益的串通投标行为