Pandas 01- Series
1.Series结构
Series结构,也称Series序列,是Pandas常用的数据结构之。它是一种类似于一维数组的结构,由一组数据值(value)和一组标签(index)组成,其中标签与数据值具有对应关系。
标签不必是唯一的,但必须是可哈希类型。该对象既支持基于整数的索引,也支持基于标签的索引,并提供了许多方法来执行涉及索引的操作。ndarray的统计方法已被覆盖,以自动排除缺失的数据(目前表示为NaN)。
Series 可以保存任何数据类型,比如整数、字符串、浮点数、Python对象等,它的标签默认为整数,从0开始依次递增。
Series的结构图,如下所示:
list、ndarray转换为Series格式
import pandas as pd
import numpy as npa=[3,7,5,8,2]
# 将列表转换为Series格式
b=pd.Series(a)
print(b)
print('a的类型: ',repr(type(a)),'\nb的类型: ',repr(type(b)))'''
0 3
1 7
2 5
3 8
4 2
dtype: int64
a的类型: <class 'list'>
b的类型: <class 'pandas.core.series.Series'>
'''npa=np.arange(1,6)
# 将ndarray转换为Series格式
b=pd.Series(npa)
print(b)
print('npa的类型: ',repr(type(npa)),'\nb的类型: ',repr(type(b)))
#输出b的标签
print(b.index)
#以元组形式输出b的标签
print(list(b.index))
#输出b的值以及值的数据类型
print(b.values,type(b.values))
'''
0 1
1 2
2 3
3 4
4 5
dtype: int32
npa的类型: <class 'numpy.ndarray'>
b的类型: <class 'pandas.core.series.Series'>
RangeIndex(start=0, stop=5, step=1)
[0, 1, 2, 3, 4]
[1 2 3 4 5] <class 'numpy.ndarray'>
'''# 添加一个元素进来
b[-1]='a'
print('查找标签为-1的元素值:',repr(b[-1]))
# 查询没有的标签,会报错:
print(b[-2])
'''
查找标签为-1的元素值: 'a'
'''
dic转换为Series
dic = {'a': 1, 'b': 2,'c': 3}
b=pd.Series(data=dic)
print(b)
# 如果标签不是整形数,也可以用标签的下标获取对应的值
print('标签取值: ',b['a'], '\n标签下标取值:',b[0])'''
a 1
b 2
c 3
dtype: int64
标签取值: 1
标签下标取值: 1
'''
dic2 = {'a': 1, 0: 2,'c': 3}
b=pd.Series(data=dic2)
print(b)
# 如果标签里有整形数和其他类型的标签,就不能通过标签的下标来取值了,否则会报KeyError
print('标签取值: ',b[0], '\n标签下标取值:',b[1])
'''
a 1
0 2
c 3
dtype: int64
Traceback (most recent call last):File "C:\Users\13529\PycharmProjects\test01\venv\lib\site-packages\pandas\core\indexes\base.py", line 3361, in get_locreturn self._engine.get_loc(casted_key)File "pandas\_libs\index.pyx", line 76, in pandas._libs.index.IndexEngine.get_locFile "pandas\_libs\index.pyx", line 108, in pandas._libs.index.IndexEngine.get_locFile "pandas\_libs\hashtable_class_helper.pxi", line 5198, in pandas._libs.hashtable.PyObjectHashTable.get_itemFile "pandas\_libs\hashtable_class_helper.pxi", line 5206, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 1
'''# 当传递的索引值未匹配对应的字典键时,使用NaN(非数字)填充。
dic3 = {'a': 'str', 'b': 2,'c': 3}
b=pd.Series(data=dic3,index=['x','a','y','z'])
print(b)'''
x NaN
a str
y NaN
z NaN
dtype: object
'''dic4={'apple':1,'banana':1.2,'orange':1.3}
b=pd.Series(dic4)
b.name = "Fruit_Data"
b.index.name = "Fruit_Name"
print(b)'''
Fruit_Name
apple 1.0
banana 1.2
orange 1.3
Name: Fruit_Data, dtype: float64
'''
将Series转换为DataFrame类型:
#使用Series创建DataFrame类型
df=pd.DataFrame(b)
print(df,'\n'+'df的数据类型: '+repr(type(df)))
print("**"*20)
#输出City_Data列的数据和类型
print(df['Fruit_Data'],'\n'+'df中的Fruit_Data数据类型: '+repr(type(df['Fruit_Data'])))'''Fruit_Data
Fruit_Name
apple 1.0
banana 1.2
orange 1.3
df的数据类型: <class 'pandas.core.frame.DataFrame'>
****************************************
Fruit_Name
apple 1.0
banana 1.2
orange 1.3
Name: Fruit_Data, dtype: float64
df中的Fruit_Data数据类型: <class 'pandas.core.series.Series'>
'''
标签索引的唯一并不是强制性的,尽管pandas函数(比如reindex)需要标签是唯一的。
# 当一个标签index对应多个值时,可以用loc[index]进行查找
a = pd.Series(range(5), index=["A", "A", "B", "C", "C"])print('索引A对应的值:')
print(a.loc["A"])
# 判断该Series中的标签是否是唯一的
print(a.index.is_unique)
'''
索引A对应的值:
A 0
A 1
dtype: int64
标签是否是唯一: False
'''
2.Series基本方法
head()、tail()
s=pd.Series(np.random.rand(10))
# 默认取前5条数据
print(s.head())
# 取前1条数据
print(s.head(1))
# 默认取后5条数据
print(s.tail())
# 取后7条数据
print(s.tail(7))'''
0 0.708893
1 0.631392
2 0.031043
3 0.625734
4 0.672718
dtype: float64
0 0.708893
dtype: float64
5 0.614755
6 0.839329
7 0.030989
8 0.636356
9 0.936704
dtype: float64
3 0.625734
4 0.672718
5 0.614755
6 0.839329
7 0.030989
8 0.636356
9 0.936704
dtype: float64
'''
reindex()重新索引
s=pd.Series(np.random.rand(5),index=list("abcde"))
print("s")
print(s)
# 新索引在上一个索引中不存在,生成新对象时,对应的值,设置为NaN
s1 = s.reindex(list("c7ed9"))
print("s1")
print(s1)
# 设置填充值,可将NaN填充
s2 = s.reindex(list("cde12"),fill_value=2)
print("s2")
print(s2)'''
s
a 0.477522
b 0.626260
c 0.302472
d 0.684824
e 0.209174
dtype: float64
s1
c 0.302472
7 NaN
e 0.209174
d 0.684824
9 NaN
dtype: float64
s2
c 0.302472
d 0.684824
e 0.209174
1 2.000000
2 2.000000
dtype: float64
'''
对齐运算
几个不同的series可以按索引对齐进行运算,如果没对齐的位置则补NaN,最后也可以填充NaN
s1=pd.Series(np.random.rand(3),index=['c','b','a'])
s2=pd.Series(np.random.rand(3),index=['a','b','d'])
print("s1")
print(s1)
print("s2")
print(s2)
print("s1+s2")
print(s1+s2)'''
s1
c 0.001765
b 0.433448
a 0.192272
dtype: float64
s2
a 0.176781
b 0.778649
d 0.554887
dtype: float64
s1+s2
a 0.369054
b 1.212097
c NaN
d NaN
dtype: float64
'''
drop( i n d e x index index),删除索引值为 i n d e x index index的元素,但当删除不存在的键时,会报错
s1=pd.Series(np.random.rand(3),index=['c','b','a'])
s1=s1.drop('c')
print(s1)
'''
b 0.827299
a 0.858903
dtype: float64
'''# 删除不存在的键时,会报错
s1=s1.drop('d')
'''
KeyError: "['d'] not found in axis"
'''
Pandas 01- Series相关推荐
- pandas 遍历 series
pandas 遍历 series from pandas import Series index1 = ['01', '02', '03', '04', '05', '06'] data1 = ['小 ...
- dataframe python格式_python3.6 pandas,Series和DataFrame基础格式与用法,附代码实例
pandas 是基于numpy构建的库,加上numpy,主要用于科学运算和数据处理. 也是一个让我忘记昂贵的MATLAB,并且不得不复习SQL的库.. 一般引入规定: In [105]: from p ...
- pythonpandas函数详解_对pandas中Series的map函数详解
Series的map方法可以接受一个函数或含有映射关系的字典型对象. 使用map是一种实现元素级转换以及其他数据清理工作的便捷方式. (DataFrame中对应的是applymap()函数,当然Dat ...
- dataframe两个表合并_Part25:Pandas基础(Series,DataFrame类的创建、索引、切片、算术方法)...
一.为什么学习pandas numpy已经可以帮助我们进行数据的处理了,那么学习pandas的目的是什么呢? numpy能够帮助我们处理的是数值型的数据,当然在数据分析中除了数值型的数据还有好多其他类 ...
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一、pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主
利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目 ...
- Python之pandas,series,可视化
七月在线之python数据处理 python常用导入函数 ndarray np之常用函数创建 ndarray之聚合操作 pandas pandas之series Series的创建 Series的索引 ...
- python删除所有core文件_python – 从pandas.core.series.Series中删除前导零
我有一个带有数据的pandas.core.series.Series 0 [00115840, 00110005, 001000033, 00116000... 1 [00267285, 002636 ...
- Python实训day09am【Pandas、Series、DataFrame数据帧】
Python实训-15天-博客汇总表 目录 1.Pandas 1.1.安装Pandas库 1.2.两种数据对象 2.一列数据Series 2.1.获取Series与数据个数 2.2.切片-loc-il ...
- Python数据分析pandas之series初识
Python数据分析pandas之series初识 声明与简介 pandas是一个基于python的.快速的.高效.灵活.易用的开源的数据处理.分析包(工具)..pandas构建在numpy之上,它通 ...
- pandas库Series使用和ix、loc、iloc基础用法
1. pandas库Series基础用法: 直接贴出用例: 1. 构造/初始化Series的3种方法: (1)用列表list构建Series import pandas as pd my_list=[ ...
最新文章
- ionic4中实现时间线
- geotools的dotnet版本
- 面试题:接口和抽象类的区别
- 系统安装重装与优化:chapter7 操作系统的修复与重装
- leetcode 729, 731, 732. My Calendar I, II, III | 729. 我的日程安排表 I, II, III(线段树)
- 【计算机算法设计与分析】——5.4最优二分检索树
- 莫名其秒的Cannot load JDBC driver class 'com.mysql.jdbc.Driv
- sqlyog通过跳板机ssh连接mysql数据库
- Q72:渲染方程(Rendering Equation)
- [转载] New Concept English 1——Lesson 12 Whose is this…?This is my/your/her…
- DM数据库 HUGE TABLE简析
- 做抖音自媒体能赚钱吗?
- 为什么从此电脑访问不了ftp_蓝奏云网盘为什么访问不了?(附资源)
- WMD:基于词向量的文档相似度计算
- flex布局小案例——制作骰子
- 1.7 ThreadLocal的原理和使用详解
- 【wxPython 安装指南:error: legacy-install-failure】
- 虚幻浏览器插件 加载并启用
- bootstrap3- 导航条 - 慕课笔记
- TRC丨艾美捷TRC a,a-二甲基-4-说明书