Pandas(Serises)
来源:互联网 发布:淘宝上买春药搜什么 编辑:程序博客网 时间:2024/06/05 14:55
导包
import pandas as pd
import numpy as npfrom pandas import Series,DataFrame
一.Series
1.Series的创建
Series是一种类似与一维数组的对象,由下面两个部分组成:
values:一组数据(ndarray类型)
index:相关的数据索引标签
创建Series
两种创建方式:
1:
由列表或numpy数组创建,默认索引为0-n-1
obj=Series([1,2,3,4]) #默认索引从0开始
obj
0 1
1 2
2 3
3 4
dtype: int64
obj2=Series([1,2,3,4],index=['a','b','c','d']) #自主定义索引
obj2
a 1
b 2
c 3
d 4
dtype: int64
由narray创建的是引用,而不是副本。
对series元素的改变也会改变原来narray的值(列表不存在这种情况)
a=np.array([1,2,3,4])
obj=Series(a,index=['a','b','c','d'])
obj
a 1
b 2
c 3
d 4
dtype: int64
obj['d']=0 #对Series元素的改变,影响narray自身的改变
a
array([1, 2, 3, 0])
2:由字典创建
obj=Series({'a':1,"b":2})
obj
a 1
b 2
dtype: int64
练习1:
使用多种方法创建以下Series,命名为sss: 语文 150 数学 150 英语 150 理综 300
#1由np.narray创建
ss=np.array([150,150,150,300])
sss=Series(ss,index=['语文','数学','英语','理综'])
sss
#法二:由字典创建
sss=Series({'语文':150,'数学':150,'英语':150,'理综':300})
sss
2)Series的索引和切片
可以使用中括号取单个索引(此时返回的是元素类型),或者中括号里一个列表取多个索引(此时返回的仍然是一个Series类型)。分为显示索引和隐式索引:
(1) 显式索引:
- 使用index中的元素作为索引值
- 使用.loc[](推荐)
注意,此时是开区间
sss['语文']
150
sss['语文':'英语']
语文 150
数学 150
英语 150
dtype: int64
(2) 隐式索引:
- 使用整数作为索引值
- 使用.iloc[](推荐)
注意,此时是半开区间
sss[0:2]
sss.iloc[0:2]
练习2:
使用多种方法对练习1创建的Series sss进行索引和切片:
索引: 数学 150
切片: 语文 150 数学 150 英语 150
索引:sss['数学']
切片:sss.iloc[0:3]#sss[0:3]
3)Series的基本概念
可以把Series看成一个定长的有序字典
可以通过shape,size,index,values等得到series的属性
head(),tail()查看数据内容head()默认为前5个,tail()默认为后5 个数据
可以使用pd.isnull(),pd.notnull(),或自带isnull(),notnull()函数检测缺失数据
pd.isnull(obj)#obj.isnull() #查看是否为空值
pd.notnull(obj)#obj.notnull() #查看是否不为空
Series对象本身及其索引都有一个name属性
4)Series的运算
(1) 适用于numpy的数组运算也适用于Series
obj+2
obj[obj>1]
(2) Series之间的运算
在运算中自动对齐不同索引的数据
如果索引不对应,则补NaN
若要保留所有的index,则需要使用add()/sub()/mul()/div()/函数 内部添加fill_value=0
A = pd.Series([2,4,6],index=[0,1,2])
B = pd.Series([1,3,5],index=[1,2,3])
display(A,B)
A.add(B,fill_value=0)
- Pandas(Serises)
- pandas
- pandas
- Pandas
- pandas
- pandas
- pandas
- pandas
- Pandas
- pandas
- pandas
- pandas
- pandas
- pandas
- pandas
- Pandas
- pandas小记:pandas数据结构
- pandas 基础
- Spark ML机器学习算法svm,als,线性回归,逻辑回归简单试验
- HTML语法的概念和架构
- easyui ueditor 整合解决不能编辑的问题
- 移植QT5.6到嵌入式开发板(史上最详细的QT移植教程)
- LeetCode----241. Different Ways to Add Parenthese(M)分治
- Pandas(Serises)
- 函数数组参数解构
- FFT算法的完整DSP实现
- 再谈随机森林---python实现
- 教你如何使用webpack打包你的项目
- SpringMVC(三)
- leetcode 623. Add One Row to Tree
- Java 类会执行初始化的5种情况
- 关于Lenovo YOGA700 启动boot与bios