python-pandas创建Series数据类型的操作
作者:淋巴不想动 发布时间:2022-01-29 14:16:24
标签:python,pandas,Series
1.什么是pandas
2.查看pandas版本信息
print(pd.__version__)
输出:
0.24.1
3.常见数据类型
常见的数据类型:
- 一维: Series
- 二维: DataFrame
- 三维: Panel …
- 四维: Panel4D …
- N维: PanelND …
4.pandas创建Series数据类型对象
1). 通过列表创建Series对象
array = ["粉条", "粉丝", "粉带"]
# 如果不指定索引, 默认从0开始;
s1 = pd.Series(data=array)
print(s1)
# 如果不指定索引, 默认从0开始;
ss1 = pd.Series(data=array, index=['A', 'B', 'C'])
print(ss1)
输出:
0 粉条
1 粉丝
2 粉带
dtype: object
A 粉条
B 粉丝
C 粉带
dtype: object
2). 通过numpy的对象Ndarray创建Series;
n = np.random.randn(5) # 随机创建一个ndarray对象;
s2 = pd.Series(data=n)
print(s2)
# 修改元素的数据类型;
ss2 = s2.astype(np.int)
print(ss2)
输出:
0 -1.649755
1 0.607479
2 0.943136
3 -1.794060
4 1.569035
dtype: float64
0 -1
1 0
2 0
3 -1
4 1
dtype: int64
3). 通过字典创建Series对象;
dict = {string.ascii_lowercase[i]:i for i in range(10)}
s3 = pd.Series(dict)
print(s3)
输出:
a 0
b 1
c 2
d 3
e 4
f 5
g 6
h 7
i 8
j 9
dtype: int64
5.Series基本操作
共同部分:
import pandas as pd
import numpy as np
import string
array = ["粉条", "粉丝", "粉带"]
s1 = pd.Series(data=array)
print(s1)
输出:
0 粉条
1 粉丝
2 粉带
dtype: object
1). 修改Series索引.index
print(s1.index) #输出:RangeIndex(start=0, stop=3, step=1)
s1.index = ['A', 'B', 'C']
print(s1)
输出:
A 粉条
B 粉丝
C 粉带
dtype: object
2). Series纵向拼接.append
s1.index = ['A', 'B', 'C']
array = ["粉条", "粉丝", "粉带"]
# 如果不指定索引, 默认从0开始;
s2 = pd.Series(data=array)
s3 = s1.append(s2)
print(s3)
输出:
A 粉条
B 粉丝
C 粉带
0 粉条
1 粉丝
2 粉带
dtype: object
3). 删除指定索引对应的元素.drop(‘index')
s3 = s3.drop('C') # 删除索引为‘C'对应的值;
print(s3)
输出:
A 粉条
B 粉丝
0 粉条
1 粉丝
2 粉带
dtype: object
4). 根据指定的索引查找元素
print(s3['B']) #粉丝
s3['B'] = np.nan #索引B处的值替换为缺失值
print(s3)
输出:
A 粉条
B NaN
0 粉条
1 粉丝
2 粉带
dtype: object
5). 切片操作 — 同列表
print(s3[:2]) #显示前两个元素
print(s3[::-1]) #逆序
print(s3[-2:]) # 显示最后两个元素
输出:
A 粉条
B NaN
dtype: object
-------------------------
2 粉带
1 粉丝
0 粉条
B NaN
A 粉条
dtype: object
-------------------------
1 粉丝
2 粉带
dtype: object
6.Series运算
先设置两个Series对象:
import pandas as pd
import numpy as np
import string
s1 = pd.Series(np.arange(5), index=list(string.ascii_lowercase[:5]))
s2 = pd.Series(np.arange(2, 8), index=list(string.ascii_lowercase[2:8]))
print(s1)
print(s2)
按照对应的索引进行计算, 如果索引不同,则填充为Nan;
1).加法add
print(s1 + s2)
print(s1.add(s2))
输出:
a NaN
b NaN
c 4.0
d 6.0
e 8.0
f NaN
g NaN
h NaN
dtype: float64
2).减法sub
print(s1 - s2)
print(s1.sub(s2))
输出:
a NaN
b NaN
c 0.0
d 0.0
e 0.0
f NaN
g NaN
h NaN
dtype: float64
3).乘法mul
print(s1 * s2)
print(s1.mul(s2))
输出:
a NaN
b NaN
c 4.0
d 9.0
e 16.0
f NaN
g NaN
h NaN
dtype: float64
4).除法div
print(s1 / s2)
print(s1.div(s2))
输出:
a NaN
b NaN
c 1.0
d 1.0
e 1.0
f NaN
g NaN
h NaN
dtype: float64
5).求中位数median
print(s1.median())
输出:
2.0
6).求和sum
print(s1.sum())
输出:
10
7).最大值max
print(s1.max())
输出:
4
8).最小值min
print(s1.min())
输出:
0
7.特殊的where方法
series中的where方法运行结果和numpy中完全不同
import pandas as pd
import numpy as np
import string
s1 = pd.Series(np.arange(5), index=list(string.ascii_lowercase[:5]))
print(s1)
输出:
a 0
b 1
c 2
d 3
e 4
dtype: int64
print(s1.where(s1 > 3))
大于3的显示,不大于3的为NaN
# 对象中小于3的元素赋值为10;
print(s1.where(s1 > 3, 10))
# 对象中大于3的元素赋值为10;
print(s1.mask(s1 > 3, 10))
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
来源:https://blog.csdn.net/weixin_43067754/article/details/87969499


猜你喜欢
- MySQL数据库由于它本身的小巧和操作的高效, 在数据库应用中越来越多的被采用.本文中列举了一个P2P应用开发实例,实例中使用了MySQL来
- oracle占用cpu过高怎么处理,本文将介绍有关oracle进程CPU占用率过高的问题,需要了解跟多的朋友可以参考下1:首先使用TOP命令
- SQL(结构化查询语言)就是负责与ANSI维护的数据库交互的标准。最新的版本是SQL-99,还有一个新标准SQL-200n尚处于制定过程中。
- (可能只有最后一句命令有用,可能全篇都没用)(小白方法,可能只适用于本人情况)安装matplotlib时,出现的三种失败情况1、read t
- 前言本文主要介绍通过Python提取csv文件中数据,并对数据进行处理。编译器:Anaconda3 语言:Python3一、使用pandas
- 一、这种布局的优点项目中的每个应用都相对独立,方便以后拿出来重用。这样的布局会促使你在开发过程中考虑每个应用的重用性。开发、测试、生产等不同
- 1、说明PyG2Plot 原理其实非常简单,其中借鉴了 pyecharts 的实现,但是因为蚂蚁金服的 G2Plot 完全基于可视分析理论的
- 作者: wyh草样出处:https://www.cnblogs.com/wyh0923/p/14084898.html什么是文件文件是系统存
- 几个特殊的函数(待补充)python是支持多种范型的语言,可以进行所谓函数式编程,其突出体现在有这么几个函数: filter、map、red
- 这篇文章主要介绍了Python中断多重循环的几种方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- tornado 默认有一个模板引擎但是功能简单(其实我能用到的都差不多)使用起来颇为麻烦, 而jinja2语法与django模板相似所以决定
- 前言删除表,大家下意识想到的命令可能是直接使用DROP TABLE "表名",这是初生牛犊的做法,因为当要删除的表达空间
- 1.算法:(设查找的数组期间为array[low, high])(1)确定该期间的中间位置K(2)将查找的值T与array[k]比较。若相等
- 本文主要给大家介绍了关于python实现循环购物车功能的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:示例代码# -*- co
- 寒假里学习了一下Python爬虫,使用最简单的方法扒取需要的天气数据,对,没听错,最简单的方法。甚至没有一个函数封装。。网址:http://
- 包括安装时提示有挂起的操作、收缩数据库、压缩数据库、转移数据库给新用户以已存在用户权限、检查备份集、修复数据库等。 (一)挂起操作在安装S
- 串口通信是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以
- 训练模型时,我们并不是直接将图像送入模型,而是先将图像转换为tfrecord文件,再将tfrecord文件送入模型。为进一步理解tfreco
- 举例如下:<HTML> <HEAD>  
- 1.开发jQuery 插件的基本格式 (function ($) { $.extend($.fn, { }) })(jQuery) 2.开发