pandas尾部添加一条_Numpy与Pandas

Numpy

0f54df11b62477975cd8c5d120406990.png
#导入numpy包
import numpy as np
##from numpy import *
#定义数组
#一维数组
a=np.array([1,2,3,4])
#二维数组
b=np.array([(1,2,3),(4,5,6)])
#定义数组类型
c=np.array([(1,2),(3,4)],dtype=complex)
#array([[ 1.+0.j,  2.+0.j],[ 3.+0.j,  4.+0.j]])#数组的维数
a.shape #(4,)
#数组轴的个数
a.ndim #1
#数组的元素类型
a.dtype #dtype('int32')
#数组的元素类型的名称
a.dtype.name #'int32'
#数组中每个元素的字节大小
#一个元素类型为float64的数组itemsiz属性值为8(=64/8)
#一个元素类型为complex32的数组item属性为4(=32/8).
a.itemsize #4
#数组中元素个数
a.size #4#全零数组
np.zeros((2,2))
#全1数组
np.ones((2,3,4))
array([[[ 1.,  1.,  1.,  1.],[ 1.,  1.,  1.,  1.],[ 1.,  1.,  1.,  1.]],[[ 1.,  1.,  1.,  1.],[ 1.,  1.,  1.,  1.],[ 1.,  1.,  1.,  1.]]])
#内容随机并且依赖与内存状态的数组。默认创建的数组类型(dtype)都是float64。
empty((2,2))
#创建数列,并变为三行五列。
np.arange(15).reshape(3,5)#基本运算
a=array([1,2,3])
b=array([4,5,6])
c=b-a #array([3,3,3])
a**2 #array([1,4,9])
a<3 #array([True,True,False],dtype=bool)
## * dot(a,b)(矩阵乘法) 
## *= +=被用来更改已存在数组而不创建一个新的数组
## a.sum() a.sum(axis=0) 计算每一列的总和 a.max() a.min() a.min(axis=1) 计算每一行的最小值#一维数组
#索引
a[2] 
#切片
a[2:4] a[:8:2] a[::-1]#翻转a
#迭代
for i in a:#多维数组
#索引
a[2,3] 
#切片
a[2:4,1] #第三行和第四行的第二个元素
a[:,1] #每一行的第二个元素
a[1:3,:] #第二行和第三行的所有元素
a[-1] #最后一行的元素
#迭代
for row in a:#对每个数组中元素进行运算
for element in a.flat:print (element,end=",")

Pandas

一维数据结构:Series

# Series 是带有标签的一维数组,可以保存任何数据类型(整数,字符串,浮点数,Python对象等),轴标签统称为索引
# Series 是一个自带索引index 的数组,有三种创建方法
# 由字典创建
dic={'a':1,'b':2,'c':3}
s=pd.Series(dic)
# 由数组创建
arr=np.random.randn(5)
s=pd.Series(arr,name='test')
# 由标量创建
s=pd.Series(2,index=range(3))
#位置下标
s[2] 
#标签索引 
s = pd.Series(np.random.rand(3), index = ['a','b','c'])
s['a']
s[['a','b']]
#切片
s1 = pd.Series(np.random.rand(5))
s2 = pd.Series(np.random.rand(5), index = ['a','b','c','d','e'])
print(s1[1:4],s1[4])
print(s2['a':'c'],s2['c'])
print(s2[0:3],s2[3])
print('-----')
# 注意:用index做切片是末端包含
print(s2[:-1])
print(s2[::2])
# 下标索引做切片,和list写法一样
# 布尔型索引
s = pd.Series(np.random.rand(3)*100)
s[4] = None  # 添加一个空值
print(s)
bs1 = s > 50
bs2 = s.isnull()
bs3 = s.notnull()
print(bs1, type(bs1), bs1.dtype)
print(bs2, type(bs2), bs2.dtype)
print(bs3, type(bs3), bs3.dtype)
print('-----')
# 数组做判断之后,返回的是一个由布尔值组成的新的数组
# .isnull() / .notnull() 判断是否为空值 (None代表空值,NaN代表有问题的数值,两个都会识别为空值)print(s[s > 50])
print(s[bs3])
# 布尔型索引方法:用[判断条件]表示,其中判断条件可以是 一个语句,或者是 一个布尔型数组!#查看头部、尾部数据,默认5条
s.head() s.tail()
# 重新索引reindex
# .reindex将会根据索引重新排序,如果当前索引不存在,则引入缺失值
# fill_value参数:填充缺失值
s1 = s.reindex(['c','b','a'],fill_value=0)
#删除 .drop
s1=s.drop('c')
s2=s.drop(['b','a'])
# drop 删除元素之后返回副本(inplace=False)
#删除缺失值
s.dropna()
# 添加
s1[2] = 2
s2['a'] = 2
# 直接通过下标索引/标签index添加值
s3 = s1.append(s2)
# 通过.append方法,直接添加一个数组
# .append方法生成一个新的数组,不改变之前的数组
In [15]:
# 修改
s['a'] = 2
s[['b','c']] = 2
# 通过索引直接修改,类似序列#获取描述统计信息
s.describe()

二维数组Dataframe:是一个表格型的数据结构,包含一组有序的列,其列的值类型可以是数值、字符串、布尔值等。 Dataframe中的数据以一个或多个二维块存放,不是列表、字典或一维数组结构。

# 创建方法
# 由字典创建
dic={'a':[1,2],'b':[2,3],'c':[3,4]}
s=pd.DataFrame(dic)
s1=pd.DataFrame(dic,columns=['b','d'])#重新指定列的顺序,格式为list,如果现有数据中没有该列(比如'd'),则产生NaN值
s2=pd.DataFrame(dic,index=['e','f','g']#重新定义index,格式为list,长度必须保持一致# 由Series组成的字典创建
s1 = {'one':pd.Series(np.random.rand(2)),'two':pd.Series(np.random.rand(3))}  # 没有设置index的Series
s2 = {'one':pd.Series(np.random.rand(2), index = ['a','b']),'two':pd.Series(np.random.rand(3),index = ['a','b','c'])}  # 设置了index的Series
df1 = pd.DataFrame(s1)
df2 = pd.DataFrame(s2)
# 由Seris组成的字典 创建Dataframe,columns为字典key,index为Series的标签(如果Series没有指定标签,则是默认数字标签)
# Series可以长度不一样,生成的Dataframe会出现NaN值# 通过二维数组直接创建
s = np.random.rand(12).reshape(3,4)
df1 = pd.DataFrame(s)
df2 = pd.DataFrame(s, index = ['a', 'b', 'c'], columns = ['one','two','three','four'])  # 可以尝试一下index或columns长度不等于已有数组的情况
# 通过二维数组直接创建Dataframe,得到一样形状的结果数据,如果不指定index和columns,两者均返回默认数字格式
# index和colunms指定长度与原数组保持一致# 由字典组成的列表
dic = [{'one': 1, 'two': 2}, {'one': 5, 'two': 10, 'three': 20}]
print(dic)
df1 = pd.DataFrame(dic)
df2 = pd.DataFrame(dic, index = ['a','b'])
df3 = pd.DataFrame(dic, columns = ['one','two'])
# 由字典组成的列表创建Dataframe,columns为字典的key,index不做指定则为默认数组标签
# colunms和index参数分别重新指定相应列及行标签# 由字典组成的字典
data = {'Jack':{'math':90,'english':89,'art':78},'Marry':{'math':82,'english':95,'art':92},'Tom':{'math':78,'english':67}}
df1 = pd.DataFrame(data)
# 由字典组成的字典创建Dataframe,columns为字典的key,index为子字典的key
df2 = pd.DataFrame(data, columns = ['Jack','Tom','Bob'])
df3 = pd.DataFrame(data, index = ['a','b','c'])
# columns参数可以增加和减少现有列,如出现新的列,值为NaN
# index在这里和之前不同,并不能改变原有index,如果指向新的标签,值为NaN #标签索引 
s = pd.DataFrame(np.random.rand(12).reshape(3,4), index = ['a','b','c'],columns=['one','two','three','four'])
s['one']#只选择一列输出Series
s[['one','two']]#选择多列输出DataFrame
# s[col]一般用于选择列,[]中写列名;s[]中为数字时,默认选择行,且只能进行切片的选择,不能单独选择(s[0])
s.loc['a']#只选择一行输出Series
s.loc[['a','b']]#选择多行输出DataFrame#切片
s.loc['a':'c']# s.iloc[] - 按照整数位置(从轴的0到length-1)选择行
s.iloc[0]
s.iloc[[3,2,1]]
s.iloc[1:3]
s.iloc[::2]# 布尔型索引
bs1 = s > 50# 索引结果保留 所有数据:True返回原数据,False返回值为NaN
bs2 = s['one']>50# 索引结果保留 单列判断为True的行数据,包括其他列
bs3 = s[['one','two']]>50# 索引结果保留 所有数据:True返回原数据,False返回值为NaN
bs4= s.loc[['a','b']]>50# 索引结果保留 所有数据:True返回原数据,False返回值为NaN# 多重索引:比如同时索引行和列
# 先选择列再选择行 —— 相当于对于一个数据,先筛选字段,再选择数据量
df['a'].loc[['one','three']]   # 选择a列的one,three行
df[['b','c','d']].iloc[::2]   # 选择b,c,d列的one,three行
df[df['a'] < 50].iloc[:2]   # 选择满足判断索引的前两行数据#查看头部、尾部数据,默认5条
s.head() s.tail() 
# .T 转置
# 添加
s['four'] = 2#列
s.loc[4] = 2#行
# 修改
s['a'] = 2
s[['b','c']] = 2
#删除 
del s['one']#删除列
s.drop(['d'], axis = 1)#删除列,需要加上axis = 1,inplace=False → 删除后生成新的数据,不改变原数据# 排序1 - 按值排序 .sort_values
# 同样适用于Series
df1 = pd.DataFrame(np.random.rand(16).reshape(4,4)*100,columns = ['a','b','c','d'])
print(df1.sort_values(['a'], ascending = True))  # 升序
print(df1.sort_values(['a'], ascending = False))  # 降序
# ascending参数:设置升序降序,默认升序
# 单列排序
df2 = pd.DataFrame({'a':[1,1,1,1,2,2,2,2],'b':list(range(8)),'c':list(range(8,0,-1))})
print(df2.sort_values(['a','c']))
# 多列排序,按列顺序排序# 排序2 - 索引排序 .sort_index
df1 = pd.DataFrame(np.random.rand(16).reshape(4,4)*100,index = [5,4,3,2],columns = ['a','b','c','d'])
df2 = pd.DataFrame(np.random.rand(16).reshape(4,4)*100,index = ['h','s','x','g'],columns = ['a','b','c','d'])
print(df1.sort_index())
print(df2.sort_index())
# 按照index排序
# 默认 ascending=True, inplace=False

4ec811f84f705eeb677a37dbc075e8d1.png

105b295d413934fd84e01447ce8686e7.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/551550.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python爬虫获取url_Python爬虫如何获取页面内所有URL链接?本文详解

如何获取一个页面内所有URL链接&#xff1f;在Python中可以使用urllib对网页进行爬取&#xff0c;然后利用Beautiful Soup对爬取的页面进行解析&#xff0c;提取出所有的URL。什么是Beautiful Soup&#xff1f; Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索…

iview table增加一行减少一行_PQ入门函数:Table.ReplaceValue

一、基础介绍Table.ReplaceValue函数的官方说明如下&#xff1a;Table.ReplaceValue(table as table, oldValue as any, newValue as any, replacer as function, columnsToSearch as list)该函数实现的功能是将Table中的值替换成新值&#xff0c;语法翻译成汉语大致如下&#…

gprs模块ftp 远程升级_基于GPRS无线通信技术的冷链监测系统

GPRS&#xff08;general packet radio service&#xff09;是通用分组无线业务的简称&#xff0c;该技术建立在GSM网络的基础上&#xff0c;被称为2.5 代移动通信技术&#xff0c;它将无线通信与Internet 紧密结合。基于GPRS的远程数据采集系统是通过中国移动的GPRS无线通信网…

小米登录协议分析_联想前副总裁常程跳槽小米数月后,波澜再起

► 文 观察者网 吕栋今年初&#xff0c;联想集团前副总裁常程离职2天即加盟小米&#xff0c;这一举动是否违反竞业协议&#xff0c;双方当时曾各执一词。最近&#xff0c;由于联想方面在北京提起劳动仲裁&#xff0c;此事也再度引发舆论关注。9月21日&#xff0c;针对“联想与…

值从哪里来_Linux used内存到底去哪里了呢?

Linux used内存到底去哪里了呢&#xff1f;阅读文章之前请先思考这么个问题我ps aux看到的RSS内存只有不到30M&#xff0c;但是free看到内存却已经使用了7,8G了&#xff0c;已经开始swap了&#xff0c;请问ps aux的实际物理内存统计是不是漏了哪些内存没算&#xff1f;我有什么…

html文本最小长度,CSS中处理不同长度文本的几种小技巧

CSS中处理不同长度文本的几种小技巧【推荐教程&#xff1a;CSS视频教程 】当我们使用 CSS 构建布局时&#xff0c;考虑长短文本内容很重要&#xff0c;如果能清楚地知道当文本长度变化时需要怎么处理&#xff0c;可以避免很多不必要的问题。在许多情况下&#xff0c;添加或删除…

matlab 判断鼠标按下_Simulink(其他校验模块)+Matlabgui(鼠标响应事件)+Stateflow汽车运动逻辑状态(二)...

1 SimulinkSimulink-其他校验模块 如下图所示为一些其他的校验模块&#xff0c;分别为声明模块&#xff0c;离散梯度模块&#xff0c;输入分辨率检测模块&#xff1b;声明模块&#xff1a;当输入值非零时检测通过&#xff0c;当输入值中包含有0时&#xff0c;检测模块报错。…

鸿蒙电脑操作系统最新消息,5G专家预测:7年后鸿蒙将成全球第一大操作系统

在公布两年之后&#xff0c;华为的鸿蒙系统历尽千难万险&#xff0c;蓄势待发&#xff0c;即将在6月2日的线上发布会上正式发布。对于鸿蒙的前景&#xff0c;通信行业的 5G 专家项立刚在接受采访中&#xff0c;在谈到对鸿蒙的看法时&#xff0c;他表示他相信 7 年后鸿蒙会成为全…

vivado顶层模块怎么建_【第2040期】Node 模块化之争:为什么 CommonJS 和 ES Modules 无法相互协调...

前言又到周五了。今日早读文章由Shopee周雨楠翻译授权分享。周雨楠&#xff0c;Shopee金融事业群前端研发&#xff0c;自主学习前端技术3年&#xff0c;喜爱各类数字媒体技术、创意设计&#xff0c;多次参与翻译工作。福利&#xff1a;有两张门票&#xff0c;有需要的跟情封联系…

centos7 转换为lvm_(建议收藏)CentOS7挂载未分配的磁盘空间以及LVM详细介绍

简述本文主要介绍CentOS7下如何挂载未分配磁盘空间的详细操作步骤。LVMLVM&#xff0c;逻辑卷管理&#xff0c;英文全称Logical Volume Manager&#xff0c;是Linux环境下对磁盘分区进行管理的一种机制。是在硬盘分区和文件系统之间添加的一个逻辑层&#xff0c;为文件系统屏蔽…

基于python的图书管理系统测试步骤_Django admin实现图书管理系统菜鸟级教程完整实例...

Django 有着强大而又及其易用的admin后台,在这里,你可以轻松实现复杂代码实现的功能,如搜索,筛选,分页,题目可编辑,多选框. 简单到,一行代码就可以实现一个功能,而且模块之间耦合得相当完美. 不信,一起来看看吧!?用Django实现管理书籍的系统,并能在前台界面对书籍进行增删查改…

c# image转换为bitmap_Python PIL.Image与numpy.array之间的相互转换

前言有时我们使用PIL库读入图像数据后需要查看图像数据的维度&#xff0c;比如shape&#xff0c;或者有时我们需要对图像数据进行numpy类型的处理&#xff0c;所以涉及到相互转化&#xff0c;这里简单记录一下。方法当使用PIL.Image.open()打开图片后&#xff0c;如果要使用img…

计算机网络互联设备功能,计算机网络互联设备简介

一、网卡v 网络适配器&#xff0c;俗称网卡(NIC&#xff0c;Network InterfaceCard 或 Ethernet network card ) 原理&#xff1a;• 工作在OSI/RM中数据链路层的设备– 是局域网接入设备&#xff0c;单机与网络间架设的桥梁 特征&#xff1a;• MACaddress&#xff1a;– uniq…

安全使用计算机事例,计算机安全案例分析.ppt

您所在位置&#xff1a;网站首页 > 海量文档&nbsp>&nbsp资格/认证考试&nbsp>&nbsp安全工程师考试计算机安全案例分析.ppt35页本文档一共被下载&#xff1a;次,您可全文免费在线阅读后下载本文档。下载提示1.本站不保证该用户上传的文档完整性&#…

bootstrap外不引用连接_网络编程Netty IoT百万长连接优化,万字长文精讲

IoT是什么The Internet of things的简称IoT&#xff0c;即是物联网的意思IoT推送系统的设计比如说&#xff0c;像一些智能设备&#xff0c;需要通过APP或者微信中的小程序等&#xff0c;给设备发送一条指令&#xff0c;让这个设备下载或者播放音乐&#xff0c;那么需要做什么才…

计算机基础知识与程序设计二,计算机基础与程序设计.doc

计算机基础与程序设计.doc (17页)本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01;14.9 积分&#xfeff;《计算机基础与稈序设计》是高等教冇H学考试工科备专业的基础课。这门课也是大部分学 生学习计算…

为什么python 为什么没有接口_python没有接口吗

接口只是定义了一些方法&#xff0c;而没有去实现&#xff0c;多用于程序设计时&#xff0c;只是设计需要有什么样的功能&#xff0c;但是并没有实现任何功能&#xff0c;这些功能需要被另一个类&#xff08;B&#xff09;继承后&#xff0c;由 类B去实现其中的某个功能或全部功…

画直线_在鸡面前画一条直线,为什么它会晕?西瓜视频这知识好冷告诉答案

为什么世界有那么多的未解之谜&#xff0c;我们无从而知&#xff0c;今天我们来探讨一下在鸡面前画条直线为什么会晕&#xff1f;你们知道吗&#xff1f;今天西瓜视频这知识好冷告诉你们答案&#xff0c;帮助你们掌握生活中所不知道的涨知识&#xff0c;增加我们的知识库。优秀…

永洪bi_案例分享!永洪BI助力知名三甲医院数字化转型升级

案例一&#xff1a;“新数据需求立刻看到结果”建院至今已有100余年的历史&#xff0c;现已发展成为集医疗、科研、教学为一体的某家三级甲等综合医院&#xff0c;通过永洪科技大数据平台&#xff0c;基于医院的HIS系统为数据源&#xff0c;分别从运营管理、药品管理、病例管理…

github mac 添加 ssh_计算机专业MAC操作技巧(二)

1、MAC 终端启动jupyter jupyter安装与配置就不赘述了&#xff0c;MAC终端启动jupyter有点独特。尝试了很多次都没有打开浏览器&#xff0c;把踩的坑总结一下&#xff1a;一直出现找不到浏览器的错误&#xff0c;在本地浏览器中一直打不开。&#xff08;1&#xff09;、首先先在…