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

Pandas的入门操作-Series对象

Pandas的数据结构

 Series对象

  • class pandas.Series(data=None, index=None)

    • data参数

      • 含义:dataSeries构造函数中最主要的参数,它用来指定要存储在Series中的数据。

      • 数据类型:data可以是多种数据类型,例如:

        • Python 列表(list)或元组(tuple),如pd.Series([1, 2, 3])或pd.Series((4, 5, 6))。

        • NumPy 数组,例如pd.Series(np.array([7, 8, 9]))。

        • 标量值(单个数值、字符串等),如pd.Series(5, index=[0, 1, 2]),这将创建一个包含相同标量值的Series。

        • 字典(dictionary),字典的键将作为Series的索引(如果未另外指定索引),字典的值作为Series的数据,例如pd.Series({'a': 10, 'b': 20})。

    • index参数

      • 含义:index参数用于指定Series的索引,它定义了数据的标签。

      • 数据类型:

        • 可以是一个Index对象(这是pandas中专门用于表示索引的数据结构),例如pd.Index(['x', 'y', 'z'])可以作为索引传递给Series。

        • 也可以是其他类似序列的数据类型,如列表、元组等,例如pd.Series([100, 200, 300], index=['m', 'n', 'o'])。

        • 索引长度要求:index的长度必须与data的长度相同(当data是列表、数组等有序数据结构时)。如果data是标量,index的长度决定了Series的长度。例如,data为标量值5,index为[0, 1, 2],则会生成一个包含三个元素值都为5的Series。

通过numpy.ndarray数组来创建

# 0 创建 numpy.ndarray数组
import numpy as nparr = np.array([3, 6, 9])
arr

 

# 1 通过 numpy.ndarray数组 来创建 Series对象(默认 索引)
import pandas as pds1 = pd.Series(arr)
s1

# 2 通过 numpy.ndarray数组 来创建 Series对象(指定 索引 类型)
s2 = pd.Series(arr, index=['x', 'y', 'z'])
s2

通过list列表来创建

# 导包 pandas
import pandas as pd
# 创建含字符串和整数的 Series 对象,,自动生成索引
s1 = pd.Series(['张三', 13])
print(s1)
print("-" * 50)
print(type(s1))

# 创建含两个字符串的 Series,自动生成索引
s2 = pd.Series(['李四', '北京'])
print(s2)
print("-" * 50)
print(type(s2))

# 创建含两个整数的 Series,自动生成索引
s3 = pd.Series([18, 15000])
print(s3)
print("-" * 50)
print(type(s3))

# 创建含有姓名和城市的 Series,自定义索引
s4 = pd.Series(["王五", "郑州"], index=['姓名', '城市'])
print(s4)
print("-" * 50)
print(type(s4))

通过元组或字典创建 Series 对象

# 1 使用元组 创建 Series 对象
import pandas as pds1 = pd.Series(('张三', '李四', '王五'), index=['a', 'b', 'c'])
print(s1)
print("-" * 50)
print(type(s1))

# 2 使用字典 创建 Series 对象
dict1 = {"name" : "悟空","age" : 23,"skill" : "火眼金睛"
}s2 = pd.Series(dict1, index=['name', 'age'])
print(s2)
print("-" * 50)
print(type(s2))

Series对象常用属性和方法

常见属性

属性说明
loc使用索引值取子集
iloc使用索引位置取子集
dtype或dtypesSeries内容的类型
TSeries的转置矩阵
shape数据的维数
sizeSeries中元素的数量
valuesSeries的值

常见方法

方法说明
append连接两个或多个Series
corr计算与另一个Series的相关系数
cov计算与另一个Series的协方差
describe计算常见统计量
drop_duplicates返回去重之后的Series
equals判断两个Series是否相同
get_values获取Series的值,作用与values属性相同
hist绘制直方图
isinSeries中是否包含某些值
min返回最小值
max返回最大值
mean返回算术平均值
median返回中位数
mode返回众数
quantile返回指定位置的分位数
replace用指定值代替Series中的值
sample返回Series的随机采样值
sort_values对值进行排序
to_frame把Series转换为DataFrame
unique去重返回数组
value_counts统计不同值数量
keys获取索引值
head查看前5个值
tail查看后5个值
import pandas as pd# 创建s对象
s1 = pd.Series(data=[1, 2, 3, 4, 2, 3], index=['E', 'F', 'A', 'B', 'C', 'D'])
print(s1)
print('=================== 常用属性 ===================')
# 查看s对象值数量
print("size: ", s1.size)# 查看s对象维度, 返回一个单个元素的元组, 元素个数代表维度数, 元素值代表值数量
print("shape: ", s1.shape)# 查看s对象数据类型
print("dtype: ", s1.dtype)# 获取s对象的数据值, 返回numpy的ndarray数组类型
print('values: ', s1.values)# 获取s对象的索引
print('index: ', s1.index)

print('=================== 常用方法 ===================')
# 查看s对象值数量
print(s1.value_counts())# 查看s对象前5个值, n默认等于5
print(s1.head(3))# 查看s对象后5个值, n默认等于5
s1.tail(3)# 获取s对象的索引
print(s1.keys())# s对象转换成python列表
print(list(s1))# s对象转换成df对象
print(s1.to_frame())
print(type(s1.to_frame()))# s对象中数据的基础统计信息
print(s1.describe())
# print('------------------------------')
# s对象最大值、最小值、平均值、求和值...
print(s1.max())
print(s1.min())
print(s1.mean())
print(s1.sum())# s对象数据值去重, 返回s对象
print(s1.drop_duplicates())
print(type(s1.drop_duplicates()))
print('------------------')
# s对象数据值去重, 返回数组
print(s1.unique())
print(type(s1.unique()))# s对象数据值排序, 默认升序
print(s1.sort_values())
# print('----------------------------------')
print(s1.sort_values(ascending=False))# s对象索引值排序, 默认升序
print(s1.sort_index())
# print('----------------------------------')
print(s1.sort_index(ascending=False))# s对象不同值的数量, 类似于分组计数操作
s1.value_counts()

实例

import pandas as pd
# 1 加载并观察数据集df = pd.read_csv('../data/a_scientists.csv')
df

# 2 获取年龄列
ages = df['Age']
ages# 3 求平均年龄
ages.mean()#%%
# 4 求高于平均年龄 组成 布尔结果
print(ages > ages.mean())
print('--------------------------------')
print(type(ages > ages.mean()))
print('--------------------------------')
print(list(ages > ages.mean()))# 5 求高于平均年龄 组成 年龄列
print(ages[ages > ages.mean()])
print('------------------------')
print(ages[list(ages > ages.mean())])

求年龄大于平均值

ages > ages.mean()

df[ages > ages.mean()]

http://www.lryc.cn/news/440679.html

相关文章:

  • 自然语言处理系列六十八》搜索引擎项目实战》搜索引擎系统架构设计
  • H5依赖安装
  • MatchRFG:引领MemeCoin潮流,探索无限增长潜力
  • 2024/9/18 模型的存储与读取
  • 在 fnOS上安装 KVM 虚拟化,并使用 Cockpit 网页管理虚拟机
  • VUE实现刻度尺进度条
  • ZYNQ FPGA自学笔记~点亮LED
  • 攻击者如何在日常网络资源中隐藏恶意软件
  • 《深度学习》深度学习 框架、流程解析、动态展示及推导
  • “中秋快乐”文字横幅的MATLAB代码生成
  • 【Node.js】RabbitMQ 延时消息
  • 前后端分离Vue美容店会员信息管理系统o7grs
  • 初学Linux(学习笔记)
  • 新增的标准流程
  • WebSocket 协议
  • [mysql]mysql排序和分页
  • 开源 AI 智能名片 S2B2C 商城小程序中的全渠道供应策略
  • 一次渲染十万条数据:前端技术优化(上)
  • springboot实训学习笔记(5)(用户登录接口的主逻辑)
  • python中网络爬虫框架
  • GEC6818初次连接使用
  • 解释下不同Gan模型之间的异同点
  • Hadoop的一些高频面试题 --- hdfs、mapreduce以及yarn的面试题
  • Day99 代码随想录打卡|动态规划篇--- 01背包问题
  • 往证是什么意思
  • Camunda流程引擎并发性能优化
  • spring springboot 日志框架
  • 【D3.js in Action 3 精译_022】3.2 使用 D3 完成数据准备工作
  • 电脑怎么禁用软件?5个方法速成,小白必入!
  • 力扣之181.超过经理收入的员工